
私はPiでRasbpianを実行しており、ユーザーに電源を切ることができることを知らせるためにGPIO出力を実行するスクリプト/etc/rc0.d
(より正確にはシンボリックリンク)があります。/etc/init.d/myscript.sh
を実行するとsudo shutdown -h now
スクリプトが実行され、システムがクラッシュします。
を実行するとsudo shutdown now
スクリプトが実行されます。いいえ実行されますが、システムがクラッシュします。
shutdown now
追加の引数なしで実行すると、実際に何が起こるかについてのドキュメントが見つかりません。
-h
この場合の違いは何ですか?実行中にshutdown now
実際にrunlevelを呼び出さないのですか0
?
アップデート:見つけました。この記事(unixhelp.ed.ac.uk)これは、パラメータのないデフォルトの動作が実行レベルに入ることを示します1
。しかし、スクリプトもあります/etc/rc1.d
が、動作しませんshutdown
。
リクエストに応じて、最初の数行は次のようになりますlast -x
(矢印は私が書いたものです)。
pi pts/3 vidar-ramdals-ma Fri Jan 9 18:07 still logged in
runlevel (to lvl 2) 3.12.28+ Fri Jan 9 18:04 - 18:07 (00:02)
reboot system boot 3.12.28+ Fri Jan 9 18:04 - 18:07 (00:02)
shutdown system down 3.12.28+ Fri Jan 9 18:04 - 18:04 (00:00)
runlevel (to lvl 0) 3.12.28+ Fri Jan 9 18:04 - 18:04 (00:00) <- shutdown -h now
pi pts/3 vidar-ramdals-ma Fri Jan 9 18:02 - down (00:01)
runlevel (to lvl 2) 3.12.28+ Fri Jan 9 18:01 - 18:04 (00:02)
reboot system boot 3.12.28+ Fri Jan 9 18:01 - 18:04 (00:02)
pi pts/3 vidar-ramdals-ma Fri Jan 9 17:57 - crash (00:04) <- shutdown now
pi pts/3 vidar-ramdals-ma Fri Jan 9 01:30 - 01:34 (00:03)
pi pts/3 vidar-ramdals-ma Fri Jan 9 01:29 - 01:29 (00:00)
runlevel (to lvl 2) 3.12.28+ Fri Jan 9 01:23 - 18:01 (16:38)
reboot system boot 3.12.28+ Fri Jan 9 01:23 - 18:04 (16:41)
このrunlevel (to lvl 0)
行はあなたの次の行に表示されますかshutdown -h now
?crash
これshutdown now
によりshutdown now
「衝突」が発生し、初期化スクリプトが実行されなくなりますか?
答え1
フォルダ内のファイル名はrc.d
重要であり、.txtファイルへのシンボリックリンク名を指定したものは不明です/etc/init.d/myscript.sh
。
次の例/etc/rc1.d
:
lrwxrwxrwx 1 root root 25 Nov 3 2011 K99readahead_early -> ../init.d/readahead_early
lrwxrwxrwx 1 root root 25 Nov 3 2011 K99readahead_later -> ../init.d/readahead_later
lrwxrwxrwx 1 root root 22 Nov 3 2011 S02lvm2-monitor -> ../init.d/lvm2-monitor
lrwxrwxrwx 1 root root 18 Nov 3 2011 S13cpuspeed -> ../init.d/cpuspeed
start
Sが提供されたら、次のようにスクリプトを実行します。 Kが提供されたらstop
。この整数値は、実行する必要がある優先順位です。