1

ローカルのgitリポジトリで「gitpull」を実行してからdaemontools「svscan」を起動するupstartconfを作成しようとしています。デーモンプロセスは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

しかし、これらはどちらも機能しません。3番目のコマンドを実行する前に、upstartに別のディレクトリに移動して、そこでコマンドを実行するように指示する方法についてのヘルプを探しています。

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 に答える