linux nohup(nohup启动shell脚本)
很多朋友对于linux nohup和nohup启动shell脚本不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
Linux nohup 命令
nohup命令在Linux系统中被用于在后台不挂断地运行命令,即使用户退出终端,该命令依然可以继续执行。默认情况下,nohup命令会将输出结果保存到当前目录下的nohup.out文件中。若该文件不可写,输出会重定向至用户主目录下的nohup.out文件。所有用户都具有使用nohup命令的权限。
基本语法格式为:
Command:要执行的命令。
Arg:一些参数,用于指定输出文件。
&:这个符号表示命令将在后台执行,即使终端退出,命令仍将继续运行。
实例:要执行root目录下的runoob.sh脚本,可以使用如下命令:
执行完成后,会在root目录下生成nohup.out文件,以确认运行成功。若要停止运行,需先找到nohup命令对应的进程ID(PID),然后使用kill命令删除进程。可以使用ps命令查找PID,如使用ps-def| grep"test.sh"命令。在找到PID后,即可通过kill PID来终止进程。
若需要在后台执行命令的同时,将输入重定向至特定文件,可使用如下命令:
将标准错误输出2重定向到标准输出,并进一步将其重定向输入至指定文件(如runoob.log)。
通过将标准错误输出2重定向到标准输出&1,然后将标准输出&1重定向输入至runoob.log文件中,实现了命令执行时输入的重定向。
Linux的nohup命令
nohup概念表示忽略所有挂断信号,运行后台程序,确保在注销后程序仍继续执行。
运行nohup命令时,添加"&"符号至命令尾部即可执行后台任务,输出将默认重定向到"nohup.out"文件。
nohup命令具有持续执行功能,即使用户退出账户,程序仍会继续运行。
nohup与"&"的区别在于,nohup命令确保程序持续执行,不依赖于用户终端,而"&"仅表示后台运行。
使用"&"命令将sh test.sh任务置于后台,保持标准输入、输出和错误重定向至当前目录下的nohup.out文件。
使用jobs命令查看当前shell中后台任务,包括任务编号、状态和命令。
通过jobs命令检查任务状态,如"Running"表示任务正在后台执行。
使用fg命令将后台任务移动至前台继续运行。
利用Ctrl-Z键暂停或恢复后台任务执行。
杀死后台任务使用kill命令,终止所有后台任务则采用disown命令。
Linux入门之nohup指令详解
在Linux环境中,nohup这一实用工具对于后台任务的管理至关重要。它允许用户启动程序,即使终端会话结束,程序也能继续执行,这对于长时间运行的任务或服务器操作非常实用,确保任务不会因用户注销或网络故障而中断。
nohup,全称"no hang up",避免了因终端关闭而发送的挂断信号(SIGHUP)。使用nohup的基本模式是,将你想在后台运行的命令,如`command-to-run&`,即使离开会话,命令也会继续运行。
例如,执行脚本`my_script.sh`的命令会是:`nohup my_script.sh&`。默认情况下,nohup会将输出和错误重定向到`nohup.out`文件,但可以通过重定向操作符(如`nohup my_script.sh> script_output.log 2>&1`)来指定其他输出文件。
管理nohup进程可以通过`jobs`命令查看,`fg`命令可以将进程调回前台,`kill`命令结合进程ID可以终止进程。尽管SSH会话断开时程序会继续,但可能需要重新连接检查输出或状态。
nohup在确保程序后台运行方面非常实用,特别是对于需要稳定运行的任务。理解并掌握如何在Linux中使用nohup,对于初学者来说是一项关键技能。然而,要注意nohup并不能防止所有意外停止,它只是处理了因终端断开导致的问题。