On Sun, 29 Oct 2023, Ramiro Aceves wrote:
if [ -x /root/nettest ]; then /root/nettest & fi
Redirect the output of your script somewhere and then it shoould be OK: ``` if [ -x /root/nettest ]; then /root/nettest >/root/nettest.log 2>&1 & fi ``` (Or, use logger(1) on all output within the script.) What's happening here can be understood if you look at the 2nd last line of /etc/rc which is: ``` rc_real_work "$@" 2>&1 | rc_postprocess ``` The rc_real_work() function runs all the rc scripts in /etc/rc.d/ including /etc/rc.local (via /etc/rc.d/local), and _all_ output is, as you can see, piped to rc_postprocess() When all the scripts finish, /etc/rc exits, and so does the RHS of that pipeline ie. whatever's running rc_postprocess(). So, anything started by rc_real_work() will get a SIGPIPE as soon as it tries to write stuff to its stdout/stderr. The nohup command also didn't work for the same reason. The nohup man-page says: If the standard output is a terminal, the standard output is appended to the file nohup.out in the current directory. If standard error is a terminal, it is directed to the same place as the standard output. Well, here the output of _all_ the scripts is a pipe, so nohup doesn't redirect the output of your command into a nohup.out file and here too it gets a SIGPIPE. HTH, -RVP