用于取消程序的命令中的ctrl c等效

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默认情况下发送(终止)信号,除非您指定要发送的信号.


Joh*_*han 7

ctrl c只发送一个SIGINT信号,但还有一些其他信号稍软一些.http://www.gnu.org/software/libtool/manual/libc/Termination-Signals.html

我认为你可以使用kill命令发送一些其他信号.(有关更多信息,请参阅man kill)


dmc*_*kee 5

如果您控制长时间运行的远程进程,您可以为 SIGTERM 安装一个信号处理程序(请参阅man signalman sigaction以及有关此主题的许多 SO 问题),以便在死亡之前很好地进行清理。

这是很常见的事情。


Mic*_*ole 5

这是 mongod 的示例

从命令行启动守护进程:

mongod &
Run Code Online (Sandbox Code Playgroud)

然后后来

kill -SIGINT `pgrep mongod`
Run Code Online (Sandbox Code Playgroud)