ディストリビューションに依存します。
Debian 派生ディストリビューションを使用している場合、適切な場所が少なくとも 2 つあります。/etc/rc.local と crontab です。 root として crontab を呼び出すことができます。
crontab -e
次に、この行を挿入します
@reboot /home/my_name/bin/my_command
どこで my_command
実行可能ファイル (chmod 755 my_command
)。
または、このような行を配置することもできます
/home/my_name/bin/my_command
/etc/rc.local にあり、これは最後に実行されます。いずれにせよ、あなたの環境ではなく、ルート環境を使用していることを忘れないでください。この理由からも、絶対パスを使用することをお勧めします。
systemd を使用している場合 ディストリビューション (Arch Linux、Fedora 19、...) 最初のオプション (crontab) は引き続き有効ですが、2 番目のオプション (/etc/rc.local) はもはや存在しません。この場合、systemctl
で実行されるサービスを開始する方法を学ぶ必要があります。 、しかし、これはあなたの単純な質問で交渉した以上のものかもしれません.
システムが cron
のバージョンを実行している場合 それをサポートする (具体的には Vixie cron)、 @reboot
を使用できます cron ジョブで。
これは、サポートする 8 つの特殊文字列の 1 つです。
crontab(5)
の引用 man ページ (私の Ubuntu 12.04 システムから):
最初の 5 つのフィールドの代わりに、8 つの特殊な文字列のいずれかが表示される場合があります:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
<ブロック引用>
@reboot
までの起動に注意してください 懸念されるのは、cron(8) デーモンの起動。特に、一部のシステム デーモンまたはその他の機能が起動する前である可能性があります。これは、マシンの起動順序によるものです。
これは唯一ではありません 起動時に何かを実行する方法ですが、これは別の方法です。
Linux のほぼすべてのバリアント (かなり昔にさかのぼります) には、起動時に実行されるファイル /etc/rc.local があります。コマンドを追加するだけです。
とはいえ、それを行う必要さえありません。 「正しい」方法は、行 kernel.sysrq =1 を /etc/sysctl.conf に変更/追加することです