Upstart - 导航到目录,git pull,然后运行daemontools

时间:2012-06-26 20:58:29

标签: git upstart

我正在尝试创建一个新手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导航到另一个目录,然后在运行第三个命令之前执行命令。

2 个答案:

答案 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 -u
start 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