nohup 实现远程运行不宕机操作
python nohup 实现远程运行不宕机操作 - python教程网
远程运行最怕断电,训练了几个小时的数据说没就没,或者停止运行。
用nohup 记录代码的输出,还可以不受断电的影响。
方法
1. 用nohup 运行一个python文件(可用)
nohup python -u main.py > nohup.out
意思是将跑的显示内容放在nohup.out文件下
nohup python -u train_attention_fusion.py > nohup.out
nohup python -u train_channelunet_self.py > nohup1.out
nohup python -u train_attention_fusion.py > attention_fusion.out
nohup python -u train_two_channelunet.py >channelunet.out
nohup python -u train_channelunet_self.py >channelunet_self.out
nohup python -u train_channelunet_org2.py > channel2.out
nohup python -u train_channelunet_org3.py > channel3.out
tail -fn 50 channel3.out
除了main.py 换成自己的文件名,nohup.out 也可以改为其他名字, nohup1.out等。其余照搬。不要问我意思,我也不太懂
2.运行后出现的结果是一行xxxx
3.想要实时看到输出结果就再写一行代码,如上图(可用)
tail -fn 50 nohup.out
这样就ok了
4.如果想停止运行代码, 需要查看进程,然后kill掉
依次键入jobs, jobs -l, kill -9 PID
xshell 后台挂起程序运行-nohup命令_xshell怎 nohup-CSDN博客
如果您在使用xshell进行远程连接ubuntu16.04服务器,进行运行服务或程序,一般情况下关掉终端或断网后程序会自动终止了,这很显然不是想看到的结果。下面介绍一下如何让程序在后台一直运行下去。
其实很简单,只需要一行命令。这里以运行python程序为示例:
运行命令格式:
- nohup command > log.txt 2>&1 &
在终端命令行中,输入运行命令
- nohup python -u test.py > ./log.txt 2>&1 &
使用tail命令查看运行日志
- cd your_log_path # 切换到自己日志的保存目录
- tail -n 5 ./log.txt # 显示日志的最后五行,这里可以定义自己要查看的行数
查看当前后台有多少 个命令在运行
- jobs -l # 不关闭xshell的情况下,有效(当关闭掉session终端时,是查询不到的,但后台还在运行);
- ps -aux | grep python(加上grep python,表示过滤带python的程序)# 查看所有进程的命令。
关闭想要后台运行的程序
- kill %num # num是jobs查看到的自己工作编号
- kill pid # pid是ps命令查看的job的自己进程编号(推荐这个吧)
—————————————————————————————————————————————————————————————
linux命令tee:将信息同时输出到屏幕和文件
linux命令tee:将信息同时输出到屏幕和文件_linux 操作窗口 输出 全部展示-CSDN博客
linux命令tee:将信息同时输出到屏幕和文件
如果你在linux下希望将程序或命令运行的信息,在输入到文件的同时,也能够显示在屏幕上,你可以考虑使用tee这个命令。
下图是对这个命令的形象介绍:
再举一个例子,比如我现在要运行python test.py:
如果只希望运行信息显示在屏幕上,那么直接运行python test.py就可以了。
如果只希望运行信息输入到文件中,那么用重定向符 > 就可以了,如下。
python test.py > output.txt
如果希望把python test.py程序运行信息输出到output.txt文件中,同时也能在屏幕显示这些运行信息,那么就可以用如下的命令。
python test.py | tee output.txt
—————————————————————————————————————————————————————————————