【问题标题】:Use sudoer to restart server in post-receive git hook使用 sudo 在 post-receive git hook 中重启服务器
【发布时间】:2014-07-25 22:02:45
【问题描述】:

每次我对我的 .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

当我推动时。我认为许可正在阻止我,我需要一些帮助来解决这个问题。

【问题讨论】:

    标签: git webserver hook git-post-receive


    【解决方案1】:

    如果您需要以 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
    

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 2015-03-22
      • 2014-06-02
      • 2013-07-17
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多