Run a program in the background on ubuntu
- Make it executable:
chmod +x program.py
- Use no hang up:
nohup /path/to/program.py &.
nohupkeep the program running even in one closes the terminal.
python /path/to/program.py &also keeps it running in the terminal in background. But it terminates the program if one logs out. To redirect the output to another file,
nohup comp-range-de.py > comp-range-de.out 2>&1&or
nohup comp-range-de.py &> comp-range-de.out&for short.
- Check the process:
ps ax | grep program.py.
ps -ecan list out all the running programs.
It is very important to understand the output of
ps. Here is the man.
PROCESS STATE CODES Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process. D Uninterruptible sleep (usually IO) R Running or runnable (on run queue) S Interruptible sleep (waiting for an event to complete) T Stopped, either by a job control signal or because it is being traced. W paging (not valid since the 2.6.xx kernel) X dead (should never be seen) Z Defunct ("zombie") process, terminated but not reaped by its parent. For BSD formats and when the stat keyword is used, additional characters may be displayed: < high-priority (not nice to other users) N low-priority (nice to other users) L has pages locked into memory (for real-time and custom IO) s is a session leader l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + is in the foreground process group
Meanwhile, another question is how to kill such a process.
Lei Ma (2015). 'Run a program in the background on ubuntu', Datumorphism, 12 April. Available at: https://datumorphism.leima.is/til/programming/run-program-in-background-ubuntu/.