1

SCREEN 環境内で、再起動時に一連のコマンドを実行したいと考えています。crontab を介してこれを行うことができます。

@reboot /usr/bin/screen -d -m -S myPseudoDaemon /path/to/something.sh

...だから、コマンドを「something.sh」に入れることができました。このケースを複雑にしているのは、一連のコマンドに sudo と chroot が含まれていることです。

sudo -i # become root
chroot /opt/debianUnstable # enter the chroot-ed Debian unstable
/bin/bash # source my bash setting, including mandatory env vars
/path/to/whatever.sh # the actual "daemon"

どうすればこれを行うことができますか?

4

4 に答える 4

0

最後に、jcb00s と Teg からのアドバイスを使用してこれを解決しましたが、環境の特定の部分が必要だったので、chroot で実行されるスクリプトに配置しました。

@reboot /usr/bin/screen -d -m -S autoLoginScreen /root/chrootPollAndBuildWithUnstable.sh

/root/chrootPollAndBuildWithUnstable.sh 内:

# cat /root/chrootPollAndBuildWithUnstable.sh
chroot /opt/debianUnstable/ /pollAndBuildInsideChroot.sh

そして、chroot された debian の不安定なファイルシステム内で、最後のステップを実行します...

# cat /opt/debianUnstable/pollAndBuildInsideChroot.sh 
su - <user> -c '/bin/bash /home/user/work/builder.sh'

...ビルダースクリプトが環境を設定し、ビルドを続行する場所。

于 2013-09-24T10:21:43.327 に答える
0

root crontab でスケジュールしようとしましたか?

パスワードなしでchrootできるようになります。

アプリケーション ユーザーでコマンドを実行するには、次を使用できます。

su -u <user> -c <command>
于 2013-09-20T09:27:22.153 に答える