我正在尝试创建一个新手conf,以便在本地git存储库上执行“git pull”,然后启动daemontools“svscan”。他们需要按照这个顺序完成,因为守护进程依赖于在git存储库中拥有最新版本的文件。
我试过了:
start on runlevel [12345]
respawn
pre-start script
cd /scripts
git pull
end script
exec /command/svscanboot
还有:
start on runlevel [12345]
respawn
chdir /scripts
exec git pull
exec /command/svscanboot
但这些都不奏效。我正在寻找帮助,如何告诉upstart导航到另一个目录,然后在运行第三个命令之前执行命令。
答案 0 :(得分:4)
你可以试试这个(我必须把我的git拉入sudo才能工作吗?):
start on runlevel [12345]
respawn
pre-start script
export HOME="/home/user"
cd $HOME/scripts/
exec sudo -u user git pull
end script
script
export HOME="/home/user"
cd $HOME/commands/
exec sudo -u user svscanboot >> /var/log/svscanboot.log 2>&1
end script
答案 1 :(得分:2)
您可以使用setuid
而不是使用sudo -ustart on runlevel [12345]
respawn
setuid user
pre-start script
cd /home/user/scripts/
exec git pull
end script
script
cd /home/user/commands/
exec svscanboot >> /var/log/svscanboot.log 2>&1
end script