It is explained on the home page better than I can explain it so I have copied the description below. Mosh is a seperate protocol that can hook into the SSH login process, it keeps your session alive after days of disconnection, changing IP, high latency and so on. You can also explore commands like pkill and pgrep.I can't believe no one has mentioned MOSH Refer to the man page of each command for more information. Be careful using xkill, though-as its man page explains, it can be dangerous. Simply execute xkill in a terminal, which should change the mouse cursor to an x or a tiny skull icon.
Xkill allows you to kill a window using a mouse. Have you ever encountered an issue where a media player, such as VLC, grayed out or hung? Now you can find the PID and kill the application using one of the commands listed above or use xkill. To learn more about various flags provided by killall (such as -u, which allows you to kill user-owned processes) check the man page ( man killall) Using xkill It has the option to ignore case using -I: $ gedit & Like kill, the default signal is SIGTERM. This will kill all the processes with the name gedit. The simplest way to terminate gedit using killall is: $ killall gedit If you don't want to specify a job ID or PID, killall lets you specify a process by name. Execute kill -l to list all signal names, and use the man kill command to read the man page. In that case, the default action is to send SIGTERM, which will terminate the process. Kill can work without specifying a signal explicitly. Note that the job ID should be prefixed with %, or kill will consider it a PID. Assuming I have a job ID of gedit from the jobs command, let's send SIGINT to gedit: $ kill -s SIGINT %1 Let's start gedit in the background using gedit &. What I like about kill is that it can also work with job IDs. Kill allows fine control over signals, enabling you to signal a process by specifying either a signal name or a signal number, followed by a process ID, or PID. This is similar to starting gedit with &,: $ gedit & Using kill You can do this using the bg command, followed by job ID (notice from the output of jobs above. Let's resume gedit in the background and free up a prompt to run other commands. You can stop, resume, and move jobs to the background or foreground as needed. Jobs allows you to control multiple processes within a single shell session. This can be verified by the jobs command. In the background, the process becomes a job. Once the process is suspended (in this case, gedit), it is not possible to write or do anything in gedit. It will stop (kill/terminate) gedit and return the shell prompt. This is also a stop signal, but the default action is not to kill but to suspend the process. It instructs the shell to stop gedit and return to the main loop, and you'll get the prompt back. This is a stop signal whose default action is to terminate the process. That will terminate gedit and all work will be lost (unless the file was saved). In such cases, Ctrl+C (the Control key in combination with 'C') comes in handy. One problem invoking gedit from the command line (if you are not using gedit &) is that it will not free up the prompt, so that shell session is blocked.
Using the command line/termination characters Ctrl + C In this post, we'll explore a few ways to terminate a process or an application from the command line as well as from a graphical interface, using gedit as a sample application. When a process misbehaves, you might sometimes want to terminate or kill it.