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


10

重要なプロセスが実行されているときに再起動/シャットダウンを無効にするか一時的に一時停止する最も簡単な方法は何ですか?プロセスが完了するには時間がかかりすぎて一時停止/再開できないため、実行中のPCのシャットダウンを避けたいです。これはcronから実行されるため、実行中のプロセスを手動で確認しない限り、実行されていることはわかりません。ありがとう。


5
重複の可能性:SO:Linuxがシャットダウンするのを一時的に防ぎます。答えは、これを実行できるさまざまなレベル(シェルスクリプトやデスクトップ環境の電源管理など)に関するヒントです。
sr_ 2012年

ランレベルの説明や説明へのリンクがなければ、答えは十分具体的ではないと思います。U&L SEにはありません。使用しているディストリビューションとバージョンを尋ねてもいいですか?
bsd 2012年

シャットダウン手順を変更するのではなく、ラッパーを作成して、ジョブが完了を示すようにします(メールまたはファイルへのタッチ)。ジョブの完了をテストしてから、シャットダウンを実行します。(cronはジョブの出力を所有者にメールで送信しますが、微調整できます)。
bsd 2012年

回答:


1

実行which shutdownして、シャットダウンプログラムへのパスを確認します。ファイル名は変更できますが、お勧めしません。

別の(より安全な)メソッド。エイリアスを使用する:alias shutdown=' ' このようなものはより可逆的です。すべてのユーザーからのシャットダウンを防止する場合は、エイリアスをグローバルに追加します。


エイリアスの使用を考えていますが、今はスクリプトを記述する必要があります。ありがとう!
zang3tsu

haltやpoweroffなどの他のコマンドについてはどうでしょうか。エイリアスを作成する必要がありますか/それらの名前も変更しますか?
mintyfreshpenguin 2014

17

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'.

ただし、この問題があります。非対話的にrootとして実行すると、ロックが無視されます。github.com/systemd/systemd/issues/2680
Alicia

私はあなたがそのバグレポートを誤ってpoweroff
読ん

どのようにしてバグレポートを正確に読み誤ったのですか?:S
アリシア

2

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

chmod 0 /sbin/shutdown

次に、それを使用する必要がある場合は、chmodでに戻しchmod 0755ます。


1
どの程度haltpoweroffsystemctl poweroff
Martin Ueding

1

/ etc / sudoersファイルのコマンドを無効にして、rootだけが実行できるようにします。

/ etc / sudoers内

# Cmnd alias specification
Cmnd_Alias     SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
vmule   ALL=(ALL:ALL) ALL, !SHUTDOWN

そして、私がコマンドを実行しようとすると:

vmule@debian:~$ sudo /sbin/shutdown  -r now
Sorry, user vmule is not allowed to execute '/sbin/shutdown -r now' as root on debian.vm

答えを詳しく説明できますか?shutdownは/ etc / sudoersで明示的に指定されていない場合があります。
Archemar 2014年

確かに、私はより良い説明で答えを編集しました。乾杯
vmule 2014年

0

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

もちろん、欠点もあります。この間、コンピュータは使用できません。

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


-1

shutdown技術的にはアプリケーションでもあり、削除することができます。を実行しますwhich shutdownwhichアプリケーションのパスを表示するコマンドです。私の場合、出力は/sbin/shutdownです。これはファイルなので、実行できますrm shutdown。または、一時的に無効にしたい場合は、名前を変更して元のファイルを削除してください。

必要な場合は、十分な権限が必要ですrm shutdown。これは読み取り専用であるため、エラーが発生する可能性があります。削除するrootか、必要に応じてコマンドを使用してくださいrm shutdown


3
なぜ-rフラグ?1つのファイルにそれを必要とせず、何かをタイプミスすると、災害が発生します。
MadTux 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.