3
如何在git post-receive hook中以root身份执行命令
我最近刚刚在服务器上为作为Upstart服务运行的Web应用程序设置了一个远程git repo。我想使用接收后挂钩触发更新应用程序代码并停止然后重新启动upstart服务所需的操作。这是我的repo.git / hooks / post-receive文件: #!/bin/bash export GIT_WORK_TREE=/var/www/current/myapp/ echo "Checking out new files and restarting app" echo $USER git checkout -f sudo /sbin/stop myapp-service sudo /sbin/start myapp-service 根据我在此处阅读的信息:askUbuntu.com,获取以root用户身份执行的upstart命令的方法是编辑visudo文件。以下是相关代码段: %sudo ALL=(ALL:ALL) ALL admin ALL=(ALL:ALL) NOPASSWD: /sbin/start myapp-service /sbin/stop myapp-service 但是当我git push到远程时,我得到如下输出: $ git commit -am "test" && git push prod …