1

我正在尝试创建一个新贵 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

但这些都不起作用。我正在寻找有关如何告诉新贵导航到另一个目录然后在运行第三个命令之前在那里执行命令的帮助。

4

2 回答 2

4

你可以试试这个(我必须把我的 git pull 包在 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
于 2012-07-27T02:09:04.673 回答
2

而不是使用 sudo -u,你可以 setuid

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
于 2015-03-03T06:11:52.927 回答