すべての作業を行います。 /dev/initctl または /run/initctl を使用します。

すべての作業を行います。 /dev/initctl または /run/initctl を使用します。

私はRaspberry Pi UPSコードの仕事をしてきました。つまり、systemd(個人の好みと親しみやすさ)の代わりにsysv initを使用してください。私は特権スクリプト(おそらく/etc/rc.localの一部であるか、/etc/rc.localで実行)がinitにあることを知らせる方法を調べています。電源システムの電子不足。マニュアルページには、信号を送信するためにinit(8)「before」に単一の大文字(「F'ailing」、「O'k」、または厳密に言うと「L」ow)を書き込む方法が記載されていますが、/etc/powerstatus今は「then」があります。それは言う:/var/run/powerstatusinitSIGPWR

andの使用はお勧めできませんSIGPWR/etc/powerstatusinitと対話したい人は/run/initctl制御チャネルを使用する必要があります。詳細については、sysvinitパッケージのソースコードを参照してください。

私は見たことがない源泉gnu.orgでホストされていますが、これを使用する例を見たことはありません。小説物事を知らせるインターフェースinit

興味深いことに、Hydraはsystemdインターフェイスをコピーしようとしました。存在しないものと似たものがあると思いますが、実際にそれを使用するものが見つかりませんでした。そんなことありますか?たとえば、一部のUPS関連ソフトウェアが利用可能であれば幸いですが、そうではnutありません。

この質問には「Raspberry Pi」が記載されていますが、そのプラットフォームやそのプラットフォームで実行されているRaspbianなどのディストリビューションに限定されません。

次の質問と回答は、関連する詳細を入力するのに役立ちます。

編集:上記のQ&Aの少なくとも1つは、なぜ一部の人が/dev/initctlを持っているのか、他の人が/run/initctlを持っているのかを示唆しています。これは私が知らなかったものです(Debianの問題です)。

ベストアンサー1

私はそれを使用すると信じていますrebootstrace次のいずれかを実行しますreboot

# strace -s 128 -f reboot

下のどこかに次が表示されます。

open("/dev/initctl", O_WRONLY)          = 3
write(3, "i\31\t\3\6\0\0\0\0\0\0\0\0\0\0\0INIT_HALT\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
close(3)

...

open("/dev/initctl", O_WRONLY)          = 3
write(3, "i\31\t\3\1\0\0\0006\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
close(3)

おすすめ記事