Answers:
一般来说,杀死进程没有比常规杀死(SIGTERM)更安全的方法了。如果是交互式过程,通常可以通过发送SIGINT信号(通常通过按Ctrl+ 来发送)将其停止,甚至更加安全C。该信号被进程本身可以捕获的陷阱侦听-通常会优雅地停止。(谢谢Eliah)
关于包管理是一种特殊情况。APT命令在水下使用的DPKG数据库始终可以检测操作是否尚未完成。每个软件包都具有标记为实际状态以及当前状态(例如,未打包,已配置等)。通过终止APT前端,数据库将处于损坏状态,但是处于已知状态。锁定文件只有在恢复到干净状态后才会释放-您应该修复此问题,直到允许新操作为止。
解决方法仅是触发一个过程,以使所有软件包都处于配置状态。实际上,如果您中断了某个apt-get
操作,则可以稍后使用
sudo dpkg --configure -a
它知道如何从中断状态恢复到所有配置状态,从这种意义上说,它只是从中断状态继续进行。锁定文件将保留在那里,直到您完成操作为止,这是有原因的-防止DPKG数据库处于不干净状态时进行新操作。
发送SIGKILL(十进制表示9)非常不安全。该信号不会被进程捕获,但是无论进程是否喜欢,操作系统(内核)都会清理整个进程。文件系统上文件的状态可以保持为损坏状态。除非不再听其他优美的信号,否则切勿发送这些信号。
这是我的操作方式,Ctrl+ C但是请注意,只要apt-get处于下载阶段或更新缓存,它是安全的。除此之外,我无法想到一种更安全的方法。只要让它完成并通过某种方式卸载或降级撤消更改即可。可以使用以下命令清除下载的文件sudo apt-get autoclean