重要なプロセスが中断されないようにシャットダウンを無効にする方法は?

重要なプロセスが中断されないようにシャットダウンを無効にする方法は?

重要なプロセスの実行中に再起動/終了を無効にするか、一時的に中断する最も簡単な方法は何ですか?プロセスの完了に時間がかかり、一時停止/再開する方法がないため、コンピュータの実行中は終了しないことをお勧めします。 cronで実行されるため、実行中のプロセスを手動でチェックしないと、実行中かどうかはわかりません。ありがとうございます。

答え1

この問題は、systemdを使用する最新のシステムで解決されましたsystemd-inhibit。使用例:

systemd-inhibit --why="Doing weekly backup" bash my-backups.sh

その後、ユーザーが閉じようとすると、強制的に閉じられない限り閉じることはできません。

❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.

答え2

which shutdown出口プログラムのパスがどこにあるかを確認するには、実行してください。ファイルの名前を変更できますが、そうしないことをお勧めします。

別の(より安全な)方法。エイリアスの使用:alias shutdown=' ' このような操作は簡単に元に戻すことができます。すべてのユーザーが閉じられないようにするには、グローバルにエイリアスを追加します。

答え3

ミッションクリティカルなサーバーで「shutdown/reboot/poweroff/halt/hostname」などのコマンドを無効にします。

chmod 0 /sbin/shutdown

その後、使用する必要がある場合は、chmodを再実行してくださいchmod 0755

答え4

アップグレードプロセス中にローカルユーザーがラップトップを終了しないようにしたいと思います。入力デバイスを無効にするのが最善の方法です。私にはマウスを無効にするだけで十分でしたが、キーボードも無効にすることができます。

もちろん、この間にコンピュータを使用できないという欠点があります。

Unix(Xの下)でキーボードとマウスの入力を無効にする

関連情報