写在前面:因为最近在Ubuntu下训练模型,所以又开始与Linux系统打交道了,其中遇到了一些问题,多数是命令不熟悉造成的,所以这里就稍微总结下
1.远程登录后如何让程序后台执行(即使断开登录程序依然执行)
假设要执行一个名为example.py的程序,如果只是输入python example.py 那么断开连接后程序就终止了,因为所有命令生成的进程都是当前终端的子进程,断开远程连接相当于关闭了终端,那么在该终端下执行的程序当然也就终止了
- 解决办法
setsid python example.py &
注意程序不能有直接输入到屏幕的操作如print等
2.输出保存到文件中:
有多种方法,但是所有方法都必须等到程序运行完毕或者缓存区达到一定量后才会写入磁盘中。
方法一(Linux重定向命令)
python example.py > out.txt
其中 > 表示覆盖 >> 表示追加方法二 (文件读写操作)
f = open('out.txt','w')
message = "hello world"
f.write(message)
f.flush() #加入这句可以将输出实时刷新到文件中,通过 tail -f out.txt命令可以查看实时信息
f.close()
- 方法三(代码控制输出重定向)
import sys
file = open('f.txt','w')
sys.stdout = file
print ("hello world")
sys.stdout.flush() #作用同方法二中f.flush()
sys.stdout.close()