apt-get の実行中にシステムをシャットダウンする正しい方法は何ですか

apt-get の実行中にシステムをシャットダウンする正しい方法は何ですか

apt-get がまだ実行されている間にシステムをシャットダウンする正しい方法は何ですか? コンピューターをシャットダウンしたばかりなのに、apt-get が不正なシャットダウンについてエラーを出します。

答え1

Piskvor のアドバイス (「しないでください」) を詳しく説明すると、シェル プロンプトで次のコマンドを発行できます。

sleep 10m ; shutdown -h now

上記はスーパーユーザーとして実行していることを前提としています。

目的は、シャットダウンする前に apt-get が完了するようにして、終了するまで待機する必要がないようにすることです。たとえば、ps と grep を使用して apt-get が完了したかどうかを検出する、より洗練されたスクリプトを作成することもできますが、職場にはそのようなスクリプトをテストするための Linux ボックスがありません。

答え2

まずapt-getを閉じますか?おそらく割り込み信号を使用します(フォアグラウンドの場合は^C、それ以外の場合はkill

アップデート:

シグナルのリストを取得するにはkill -l

$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
30) SIGPWR      31) SIGSYS      32) SIGRTMIN    33) SIGRTMIN+1
34) SIGRTMIN+2  35) SIGRTMIN+3  36) SIGRTMIN+4  37) SIGRTMIN+5
38) SIGRTMIN+6  39) SIGRTMIN+7  40) SIGRTMIN+8  41) SIGRTMIN+9
42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13
46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49) SIGRTMAX-14
50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10
54) SIGRTMAX-9  55) SIGRTMAX-8  56) SIGRTMAX-7  57) SIGRTMAX-6
58) SIGRTMAX-5  59) SIGRTMAX-4  60) SIGRTMAX-3  61) SIGRTMAX-2
62) SIGRTMAX-1  63) SIGRTMAX

核兵器オプションである 9 (SIGKILL) を試す前に、HUP、INT、QUIT、あるいは USR1、USR2、ABRT などのより穏やかなシグナルを試すことができます。実際には、apt-get のプログラム ドキュメントには、これらのシグナルのいずれかを別の方法で処理するかどうかが記載されているはずです。記載されていないので、あまり期待していません。一部のバグ レポートでは、INT が機能するはずだと述べられています。

関連情報