For what reason(s) would nohup not work on a specific in-house developed process?
I'm using it as follows:
/usr/bin/nohup process_a &
I can close the terminal where it was executed and see that it is still running via ps. However, after logging out and back in again the process is no longer running.
I can run the same nohup command on a different in-house developed process_b and logging out and back in does not end the process. It is still running.
I'm wondering what could be "special" about process_a such that it does not survive logging out and back in again. Both process a and b open a TCP server socket and also have open file descriptors for logging.
I've tried using bash, tcsh, and zsh shells, all with the same results.
For what reason(s) would one process running under nohup survive logging out/in and another would not? I'm assuming there's something in the code that the developers can change.
We're running RHEL 6 in a fairly restrictive environment (screen, tmux, etc. are not available alternatives).
UPDATE:
process_a survives the following
kill -s HUP PID
so SIGHUP appears to be successfully handled via nohup in this instance. It still dies at logout though.
/dev/tty
, would it? A reference to stdout or stderr could cause a problem, right? … … … … … … … … … … … … … … … … … … RudolfSchmidt: What happens if you donohup process_a > /dev/null 2>&1
, and then logout and login again?nohup.out
if they are still connected to the terminal.