每次我更改我的.pm文件时都必须重新启动我的网络服务器,所以我试图在post-receive挂钩中设置重启。
#!/bin/sh
GIT_WORK_TREE=/web git checkout -f
rap stop
sleep 5
rap start
当我手动重启时,我必须去root并输入rap stop / start。现在我正在
remote: hooks/post-receive: line 3: rap: command not found
remote: hooks/post-receive: line 5: rap: command not found
当我推动时。我认为许可阻止了我,我需要一些帮助来解决这个问题。
答案 0 :(得分:3)
如果您需要以root用户身份使用这些命令,则可以使用“How to execute commands as root in git post-receive hook”:
- 创建一个单独的脚本,仅包含以root身份运行的命令。
#!/bin/bash
sudo /full/path/to/rap stop
sudo /full/path/to/rap start
- 在收件后脚本中执行:
#!/bin/bash
export GIT_WORK_TREE=/var/www/current/myapp/
set -x
echo "Checking out new files on production and restarting app"
echo $USER
git checkout -f
sudo /home/admin/restart-myapp
- 最后在
visudo
:
%sudo ALL=(ALL:ALL) ALL
admin ALL=(ALL) NOPASSWD: /home/admin/restart-myapp