我正在尝试创建一个从 git 存储库部署应用程序的服务。为此,我执行一个 node JS 脚本来监听服务器上的一个端口,每次开发人员向存储库推送时,它都会向我服务器上的这个端口发送请求。然后,我的 nodejs 脚本执行一个 bash 脚本来部署应用程序。
当我手动点它时,它有效:
- 我以用户身份登录到我的服务器
mmarteau
。 - 我进入
~/deploy
目录并启动node index.js
。 - 我向我的 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上