web-dev-qa-db-ja.com

ログインではなくブート時に実行するスクリプトの取得

マシンが起動するたびに、ログインする前に、特定のスクリプトを実行するには(スーパーユーザーではないことが望ましい)どうすればよいですか。ブート時に実行する最後のものである可能性があります。ほとんどの場合、ログインしているユーザーがいなくてもスクリプトを機能させたいだけです。

10
Malabarba

cronを使用することをお勧めします。 @rebootの特別な時間値は、ユーザーとして再起動するたびにジョブを生成します。たとえば、crontab -eを実行し、次を使用します。

@reboot /home/yourself/bin/some_script_to_run

特別な時間形式の詳細については、man 5 crontabを参照してください

8
Kees Cook

1つの可能性は、Upstartを使用することです。これにより、依存関係の観点からスクリプトを実行するタイミングを指定できます。 「ファイルシステムがマウントされ、ネットワークインターフェイスeth0が起動して実行されている場合」。次のようなファイルを含む/etc/init/bruce_script.conf(ルートとしてファイルを作成する必要があります)を作成します。

description "Bruce's boot script"
start on filesystem and net-device-up IFACE=eth0
task
exec su -c '/home/bruce/script' bruce

詳細については pstart のドキュメント、特に init(5)マニュアルページ を参照して、その構成ファイルに含めることができるもののリストを参照してください。

4
Gilles