用ctrl c命令取消程序的等价物

我在远程机器上运行一个很长的程序,我想停止它,但我的问题是,如果我使用kill命令,那么程序将退出而不保存结果。 通常情况下,我所做的完成程序是使用CTRL C,在这种情况下,程序保存结果,但现在我不在机器运行会话,所以我不能做CTRL C。

我的问题是:有没有办法以远程的方式做相当于ctrl c ?.

尝试:

kill -SIGINT processPIDHere 

基本上Ctrl C发送SIGINT (中断)信号,而kill则默认发送SIGTERM (终止)信号,除非你指定要发送的信号。

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

我认为你可以使用kill命令发送一些其他的信号。 (见男子杀死更多的信息)

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

这是一件很平常的事情。

请记住,在你的信号处理程序,它就像一个中断处理程序,因为你是在允许你做什么,而不损坏你的程序的其余部分,是非常有限的。 你可以在这里做的最好的事情是设置一个atomic_t“should_quit”variables。