Sending SIGINT (Ctrl-C) to program running in Ecli

2019-03-17 10:58发布

问题:

I have setup a run configuration in Eclipse and need to send SIGINT (Ctrl+C) to the program. There is cleanup code in the program that runs after SIGINT, so pressing Eclipse's "Terminate" buttons won't work (they send SIGKILL I think). Typing CTRL+C into the Console also doesn't work.

How do I send SIGINT to a process running inside an Eclipse Console?

(FWIW I am running a Twisted daemon and need Twisted to shutdown correctly, which only occurs on SIGINT)

回答1:

If you can determine the process with a utility such as ps, you can use kill to send it a SIGINT. The program will likely be a child process of eclipse.

kill -s INT <pid>


回答2:

You can send the command via one line:

 kill -SIGINT $(ps aux | grep ProgrammName | grep -v grep | awk '{print $2}') 

Get the process id and than send the sigint signal



回答3:

That still seems to be an open issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016

Just for the sake of completeness: If you came here to find a way to terminate a read line from System.in, Ctrl + Z worked for me (on Windows).