imodkillgroup(1) General Commands Manual imodkillgroup(1) NAME imodkillgroup - Kill process group or process tree given one process ID SYNOPSIS imodkillgroup [options] pid [pid...] DESCRIPTION Imodkillgroup is a Python script to kill one or more sets of related processes. It works in two different ways. 1) For a given process ID (PID), it can find the ID of the process group that it belongs to and issue a command to kill the whole process group. 2) Given the PID of a parent of a set of processes, it can find the tree of child processes and kill each member of the tree. The program operates differently depending on the operating system and type of Python being run: Linux or Mac OS X: Group-killing is done by default, and tree-killing is done if the -t option is given. With tree-killing, the program stops all processes at one level before issuing a ps command to find children of those processes. Tree-killing is needed when killing pro- cesses run by Processchunks on the local host, because they have the same group ID as Processchunks itself. Killing is done with SIGKILL by default, or with SIGTERM if the -e option is given. When this option is used with tree-killing, each stopped process is continued just prior to the kill. Cygwin Python: Group-killing is done by default, and tree-killing is done if the -t option is given. With tree-killing, the program does not stop any processes before killing them because current Cygwin has trouble killing processes after stopping them. It is thus vulnerable to a process starting a new child after the list has been constructed and before it has been killed. Do not use this option unless it is essential for killing just some members of a process group. In any case, this option is not needed when killing from Processchunks. Killing can be troublesome in Cygwin if the computer is heavily loaded. By default, the program will issue a second kill command for a particu- lar group if there is any kind of error message returned from the first kill. If the second kill results in a "No such process" error or no error, then no error is reported and the program exists with a 0 sta- tus. The option -s can also be used in Cygwin to get a process status list- ing with ps and find all the members of the groups before killing. The program will then run a new ps after issuing the kill commands and, if there are any group members still running, it will issue new kill com- mands as needed. This process is repeated up to 5 times. However, if the system is heavily loaded, the initial ps may fail, and the program falls back to issuing a second kill for all groups, treating errors similarly to the default behavior. In summary, just use the default method with Cygwin Python. Windows Python: The psutil module must be installed to use this program with Windows Python. Only process trees can be killed, and the -t option is not needed. The program stops all processes at one level before finding their children. This seems to work fine, unlike in Cyg- win. However, this program cannot be run with Windows Python to kill a process group where Cygwin Python was used to run jobs. The option -v can be used to get verbose output on the progress of the program. AUTHOR David Mastronarde, mast at colorado dot edu SEE ALSO processchunks BUGS The program is much more complicated than it should be thanks to the problems in Cygwin. IMOD 5.0.2 imodkillgroup(1)