起動後にコマンドを実行するには?
起動するたびに単純なシェルコマンド echo 1 > /proc/sys/kernel/sysrq
を実行して sysrq キーを有効にしたいと思っています。また、これを実行するためのスクリプトをどこに置けばいいのでしょうか?
ディストリビューションに依存する。
Debian 由来のディストロであれば、少なくとも /etc/rc.local と crontab の 2 つの適切な場所があります。crontab を root として
crontab -e
を起動して、次の行を挿入してください。
@reboot /home/my_name/bin/my_command
のような行を /etc/rc.local に置くこともできます。いずれにしても、自分の環境ではなく、ルート環境を使っていることを覚えておいてください。また、このような理由から、絶対パスを使うことをお勧めします。
systemdディストロ(Arch Linux, Fedora 19, …)を使っている場合、最初のオプション(crontab)はまだ有効ですが、2番目のオプション(/etc/rc.local)はもう存在しません。この場合、my_command
で実行されるサービスを開始する方法を学ぶ必要がありますが、これはあなたの単純な質問であなたが交渉した以上のものかもしれません。
お使いのシステムが cron
をサポートするバージョンの @reboot
(特に Vixie cron) を実行している場合、cron ジョブで crontab(5)
を使用することができます。
これはサポートされている8つの特殊文字列のうちの1つです。
(私のUbuntu 12.04システムから) @reboot
のマニュアルページを引用します:
最初の5つのフィールドの代わりに、8つの特殊文字列のうちの1つが表示されることがあります。
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 * * * *".
0x6&に関する限り、スタートアップはcron(8)デーモンが起動する時間であることに注意してください。特に、一部のシステムデーモンや他の設備が起動する前になる場合があります。これは、マシンの起動順シーケンスによるものです。
これは、ブート時に何かを実行するための唯一の方法とは程遠いですが、代替手段です。