![当 apt-get 仍在运行时关闭系统的正确方法是什么](https://linux22.com/image/1288963/%E5%BD%93%20apt-get%20%E4%BB%8D%E5%9C%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E5%85%B3%E9%97%AD%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88.png)
当 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 应该可以工作。