Thursday, January 23, 2014

Kill a process remotely in unix

In Unix, how do I kill another login session remotely?

You can kill a Unix login session remotely by sending a hangup signal (SIGHUP) to the process running the login session. To do this, follow the steps below:

  1.    Identify the shell you want to kill. To determine your current tty, from your Unix shell prompt, enter: tty
  2.    To show all of your running processes, enter: ps -fu username Replace username with your username.
  3.    You should see something like this: PID TT STAT TIME COMMAND 13964 v5 I 0:00 elm 13126 ue S 0:00 -bash (bash) 13133 ue R 0:00 ps x 13335 v5 S 0:00 -bash (bash).  In the first column, "PID" stands for "process ID". The second column shows the tty to which your processes are connected. The dash ( - ) before a process name shows that the process is a login shell.
  4.    To remove the remote shell, look for the processes with a dash and choose the process number that is not for your current tty. Then issue the following command: kill -HUP processid Replace processid with the process ID number you identified.

When you send a SIGHUP (by entering kill -HUP or kill -1) to a login shell, all the processes that were started in the shell will be killed as well (unless they were in the background). SIGHUP is good because it allows applications like Elm and Emacs to exit gracefully, leaving your files intact.

Note: You cannot kill processes that are running on a computer different from the one you are logged into.