我正在远程计算机上运行一个长Linux程序,但我想停止它,但是我的问题是,如果我使用kill命令,则该程序将退出而不保存结果。通常,完成该程序的工作是使用Ctrl+ C,在这种情况下,该程序会保存结果,但是现在我不在运行会话的计算机中,因此无法按Ctrl+ C。
我的问题是:有什么办法可以远程实现Ctrl+的功能C吗?
Answers:
尝试:
kill -SIGINT processPIDHere
基本上,默认情况下Ctrl C发送SIGINT
(中断)信号,而killSIGTERM
默认情况下发送(终止)信号,除非您指定要发送的信号。
ping
如下所示:ps aux | grep "ping"
,列中的第一个数字是pid。
kill -2 PID
ctrl c只是发送一个SIGINT信号,但是还有一些其他信号要软一些。http://www.gnu.org/software/libtool/manual/libc/Termination-Signals.html
我认为您可以使用kill命令发送其他信号。(有关更多信息,请参见人杀)
如果控制长时间运行的远程进程,则可以为SIGTERM安装信号处理程序(请参阅man signal
以及man sigaction
有关该主题的许多SO问题),以在死亡之前很好地进行清理。
这是很常见的事情。
我正在做下面的方式
killall -2 <ProgramName>
要么
kill -2 <PID of your process>
我曾经忘记信号的名称。即SIGINT / SIGKILL在这里,所以我正在使用数字,如killall -2或killall -9