让程序在后台运行_nohup使用
在Linux操作时,我们想让某个程序在后台运行,例如训练模型。我们可以通过使用nohup
命令,并将输出记录在文档中。
例如,我创建了一个 run.sh 的脚本
vi run.sh
# 在脚本中写入你想运行的程序脚本,Esc,然后ctrl+":",输入 wq 保存退出
python train.py
# 有时候需要给脚本开读写权限,nohup才能运行
chmod 777 run.sh
- 使用
nohup
让程序后台运行,结果输出到 train.log 文件中(推荐
)
nohup ./run.sh > train.log 2>&1 &
"2>&1"
表示 错误和输出都传到nohup.out文件中,默认状态只把输出输出到nohup.out文件中;如果train.log
出现ignore input可等待一下,程序可能还在处理。
方法二:
# 输出的日志在当前目录nohup.out中
nohup ./run.sh
- 使用
jobs
查看任务,返回任务列表
[1]+ Running nohup ./run.sh > train.log 2>&1 &
-
查看进程PID
ps -aux |grep XXX
第二个值就是进程的PID
-
根据
PID
杀死进程
kill -9 XXXXX