What is

</dev/null is used to avoid having the script wait for input.

Quoting from the usage of < /dev/null & in the command line:

< /dev/null is used to instantly send EOF to the program, so that it
doesn’t wait for input (/dev/null, the null device, is a special
file that discards all data written to it, but reports that the write
operation succeeded, and provides no data to any process that reads
from it, yielding EOF immediately). & is a special type of command
separator used to background the preceding process.

So the command:

nohup myscript.sh >myscript.log 2>&1 </dev/null &
#\__/             \___________/ \__/ \________/ ^
# |                    |          |      |      |
# |                    |          |      |  run in background
# |                    |          |      |
# |                    |          |   don't expect input
# |                    |          |   
# |                    |        redirect stderr to stdout
# |                    |           
# |                    redirect stdout to myscript.log
# |
# keep the command running 
# no matter whether the connection is lost or you logout

will move to background the command, outputting both stdout and stderr to myscript.log without waiting for any input.

Leave a Comment