Bash 文件与 Upstart 服务的行为不同

Bash 文件与 Upstart 服务的行为不同

我正在尝试创建一个从 git 存储库部署应用程序的服务。为此,我执行一个 node JS 脚本来监听服务器上的一个端口,每次开发人员向存储库推送时,它都会向我服务器上的这个端口发送请求。然后,我的 nodejs 脚本执行一个 bash 脚本来部署应用程序。

当我手动点它时,它有效:

  1. 我以用户身份登录到我的服务器mmarteau
  2. 我进入~/deploy目录并启动node index.js
  3. 我向我的 URL 发出请求,我的应用程序自行部署。

因此我尝试创建一个 upstart 服务来自动化此操作。这是我的 upstart 服务:

description "Service permettant le déploiement d'une application depuis bitbucket"
author "Mathieu Marteau"

start on filesystem runlevel [2345]
stop on shutdown
respawn
setuid mmarteau

exec /usr/bin/node /home/mmarteau/deploy/index.js

如您所见,我使用setuid mmarteau从同一个用户启动节点脚本。

但是,这不一样。我遇到了服务权限问题,但手动方式没有问题。我应该去哪里解决问题?我做错了什么?

非常感谢您的回答,如需了解更多信息,请随时向我询问:)

PS:我在Ubuntu 14.04上

相关内容