当 apt-get 仍在运行时关闭系统的正确方法是什么

当 apt-get 仍在运行时关闭系统的正确方法是什么

当 apt-get 仍在运行时,关闭系统的正确方法是什么?当我刚刚关闭计算机时,apt-get 抱怨关闭不彻底。

答案1

作为对 Piskvor 的建议(“不要”)的详细说明,您可以在 shell 提示符下发出以下命令:

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 应该可以工作。

相关内容