Git接收后永远重新启动(node.js)?

0pizxfdo  于 2022-12-12  发布在  Node.js
关注(0)|答案(3)|浏览(163)

我在我的服务器上使用git作为一个远程repo,在post-receive里面我定义了我的工作树和git-dir。
我在这个应用程序上使用node.js和forever,为了使大多数更改生效,我需要运行forever restart server.js。通过ssh和cd登录到目录并手动操作是一件痛苦的事情。
所以我在想,是否可以在post-receive中发出一个命令,比如forever restart server.js

这是我的接收后文件

#!/bin/sh
git --work-tree=/var/www/example/public_html --git-dir=/var/repo/examp$
forever restart ../../../www/example/public_html/server.js
nbewdwxp

nbewdwxp1#

我将节点服务器文件的绝对路径与forever restart命令一起使用。

#!/bin/sh

echo "Checking out files"

git --work-tree=/path/to/node/server --git-    dir=/path/to/site.git checkout -f

# If app-server.js is running, restart--otherwise start
forever restart /path/to/node/server/app-server.js

编辑:按照Norman的规定,这应该在服务器上的.git/hooks目录中。

raogr8fs

raogr8fs2#

你能不能不要在你的服务器的.git/hooks里面定义post-receive钩子。我想你可以在里面加一个bash命令来永久重启。

xqkwcwgp

xqkwcwgp3#

超晚回复。
在package.json中,确保forever位于deps中,并添加一个启动和停止脚本。

"scripts": {
  "start": "forever start index.js",
  "stop": "forever stop index.js"
}

在你的钩子里面,只要做:

npm run stop
npm install
npm run start

通过git部署node app更简单的方法是使用以下工具:Piriku

相关问题