
nohup是 no hang up 的简写,意为不挂断的意思。
用途:不挂断地运行命令
语法:nohup Command [ Arg … ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
注意,nohup并不能让程序在后台运行 一般nohup配置&使用,&放最后。
java -jar -Dloader.path.,resources,lib projectBuilder-0.0.1-SNAPSHOT.jar
如果以上面的命令运行程序,那么当终端断开时,或按ctrl+c强制中断程序,或按ctrl+z挂起程序时,程序都无法运行。注意终端断开时和按ctrl+c都是强制终端程序,按ctrl+z则是将程序在后台挂起,并可以通过fg/bg命令从新将程序置于运行状态。
nohup java -jar -Dloader.path.,resources,lib projectBuilder-0.0.1-SNAPSHOT.jar
如果以上面的命令运行程序,断开终端时程序可以继续运行,但是按ctrl+z或ctrl+c时程序无法运行。
nohup java -jar -Dloader.path.,resources,lib projectBuilder-0.0.1-SNAPSHOT.jar &
如果以上面的命令运行程序,只是在最后加一个&符号,程序将会在后台运行,也就没有ctrl+c或ctrl+z了,当然终端断开时程序也是运行的。