2013-12-08 07:10:46 +0000 2013-12-08 07:10:46 +0000
27
27

起動後にコマンドを実行するには?

起動するたびに単純なシェルコマンド echo 1 > /proc/sys/kernel/sysrq を実行して sysrq キーを有効にしたいと思っています。また、これを実行するためのスクリプトをどこに置けばいいのでしょうか?

回答 (3)

37
37
37
2013-12-08 07:37:04 +0000

ディストリビューションに依存する。

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で実行されるサービスを開始する方法を学ぶ必要がありますが、これはあなたの単純な質問であなたが交渉した以上のものかもしれません。

19
19
19
2012-09-10 22:29:09 +0000

お使いのシステムが 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)デーモンが起動する時間であることに注意してください。特に、一部のシステムデーモンや他の設備が起動する前になる場合があります。これは、マシンの起動順シーケンスによるものです。

これは、ブート時に何かを実行するための唯一の方法とは程遠いですが、代替手段です。

9
9
9
2013-12-08 07:32:27 +0000

Linux のほとんどすべての亜種 (長い長い間さかのぼって) には /etc/rc.local というファイルがあり、起動時に実行されます - これにコマンドを追加するだけです。

とはいえ、そんなことをする必要はありません。正しい」方法は、/etc/sysctl.conf に kernel.sysrq = 1 という行を修正/追加することです。

関連する質問

6
10
5
37
10