一. 场景描述
天黑了,我得离开实验室去吃饭了。为了环保,我必须关闭电脑,减少不必要的浪费!正常情况下当我关闭终端或电脑时,上面运行的任务代码即会自动停止,但我依旧希望保持代码的正常运行,此时我们就需要用到nohup
工具
二. nohup介绍
nohup
英文全称 no hang up
(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
三. nobup命令
3.1 语法格式
nohup Command [ Arg … ] [ & ]
解释:
Command
:任务需要执行的命令Arg
:一般用来设置重定向输出日志文件&
:让命令在后台执行,终端退出后命令仍旧执行。
3.2 实操
3.2.1 后台运行一个python文件
该命令表示在后台运行index.py
这个文件
nohup python3 index.py &
运行成功后会给出一串数字,就是这个后台程序的PID
号码,当我们需要停止这个程序的时候,就可以使用如下代码来进行停止
kill -p PID
倘若忘记了这个PID
号码,可以通过如下命令来查看过滤我们当前运行的进程
ps -ef | grep "index.py"
同时,后台运行程序的日志文件会默认放在当前目录下面的nohup.out
中
3.2.2 运行文件且重定向输出日志到指定的位置
该命令表示在后台运行index.py
这个文件,且将日志文件重定向输出到/root/running.log
中,停止程序过程和上述一样
nohup python3 index.py > /root/running.log 2>&1 &
特别注意:2>&1
表示将标准错误输出重定向到标准输出,是一个整体,不可分割