Edu*_*rdo 67 linux command-line copy-paste
我在远程机器上运行一个很长的linux程序,我想阻止它,但我的问题是,如果我使用kill命令,那么程序将退出而不保存结果.通常我完成程序的工作是使用ctrl c,在这种情况下程序保存结果,但是现在我不在运行会话的机器中,所以我不能做ctrl c.
我的问题是:有没有办法以远程方式做相当于ctrl c?
Fir*_*aad 98
尝试:
kill -SIGINT processPIDHere
Run Code Online (Sandbox Code Playgroud)
基本上Ctrl C发送SIGINT(中断)信号,而kill在SIGTERM默认情况下发送(终止)信号,除非您指定要发送的信号.
ctrl c只发送一个SIGINT信号,但还有一些其他信号稍软一些.http://www.gnu.org/software/libtool/manual/libc/Termination-Signals.html
我认为你可以使用kill命令发送一些其他信号.(有关更多信息,请参阅man kill)
如果您控制长时间运行的远程进程,您可以为 SIGTERM 安装一个信号处理程序(请参阅man signal和man sigaction以及有关此主题的许多 SO 问题),以便在死亡之前很好地进行清理。
这是很常见的事情。
这是 mongod 的示例
从命令行启动守护进程:
mongod &
Run Code Online (Sandbox Code Playgroud)
然后后来
kill -SIGINT `pgrep mongod`
Run Code Online (Sandbox Code Playgroud)