Sysrqキーを有効にするために、ブートごとに単純なシェルコマンドecho 1 > /proc/sys/kernel/sysrq
を実行したいと思います。起動時にこれを行うべきです、そしてそれをするためにどこにスクリプトを置くべきですか?
ディストリビューションに依存します。
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にあり、これは最後に実行されます。いずれにせよ、plsはあなたがあなたのものではなくroot環境を使っているのを覚えていますか。またこの理由から、絶対パスを使用するのが最善です。
あなたがsystemdディストリビューション(Arch Linux、Fedora 19、...)を使っている場合、最初のオプション(crontab)はまだ有効です、2番目のオプション(/etc/rc.local)はもう存在しません。この場合、systemctl
によって実行されるサービスを開始する方法を学ぶ必要がありますが、これはあなたの単純な質問で交渉した以上のものかもしれません。
システムがそれをサポートするバージョンのcron
(特にVixie cron)を実行している場合は、cronジョブで@reboot
を使用できます。
これは、サポートしている8つの特殊文字列のうちの1つです。
crontab(5)
のmanページを引用する(私のUbuntu 12.04システムから):
最初の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 * * * *".
@reboot
に関する限り、起動はcron(8)デーモンの起動時です。特に、いくつかのシステムデーモンや他の機能が起動する前に発生する可能性があります。これは、マシンの起動順序の順序によるものです。
これは起動時に何かを実行する唯一の方法ではありませんが、これは代替手段です。
Linuxのほとんどすべての変種(長く、ずっと前に戻る)には、起動時に実行される/etc/rc.localファイルがあります - それにコマンドを追加するだけです。
それは言った、あなたもそれをする必要はありません。 「正しい」方法は、kernel.sysrq = 1という行を/etc/sysctl.confに変更または追加することです。