nohup命令在Ubuntu中通常用于在系统后台不挂断地运行命令,即使退出终端或关闭Shell会话,程序也会继续运行。
(图片来源网络,侵删)
下面是关于nohup命令的详细用法:
基本语法
nohup命令的基本语法非常简单,可以在想要运行的命令前加上nohup,并在后面添加&符号将程序放到后台运行。
$ nohup command arguments &或者使用重定向将输出保存到指定文件中:
$ nohup command > output.file &功能特点
持续运行:即使关闭了终端或断开了SSH连接,使用nohup启动的程序仍会继续在后台运行。
输出重定向:默认情况下,nohup命令的输出会被重定向到一个名为nohup.out的文件里,通常位于当前目录或用户的家目录中。
错误日志:程序的错误输出同样会被记录在nohup.out文件中。
使用示例
假设您有一个Python脚本train.py需要长时间运行,您可以这样使用nohup命令:
$ nohup python train.py > train.log &这将使train.py在后台运行,并将所有输出重定向到train.log文件中。
查找和关闭进程
如果您想找到由nohup启动的后台进程,可以使用ps命令配合grep来查找。
$ ps ef | grep train.py当找到进程ID(PID)后,可以使用kill命令结束该进程:
$ kill PIDnohup是一个在Linux/Unix系统中非常实用的命令,尤其适合需要长时间执行或在不稳定的网络环境中保持运行的任务,通过合理利用nohup,可以确保程序不受终端状态影响,提高任务的稳定性和可靠性。