如何在Linux服务器下保存运行日志、如何在Linux服务器下让程序后台运行或者如何让程序在本机网络断联的情况下也能持续运行

1.问题描述

问题1:在Linux服务器中运行项目,一般情况下会使用SSH远程服务连接云端服务器。但是,程序运行时间可能过长,大家可能总是会因为各种意外无法监督程序运行,为了保证大家在无法监督程序运行的情况下也能查看程序运行的日志写下这篇博客。简而言之,如何在Linux服务器下保存运行日志
问题2:在Linux服务器中运行项目,可能会因为SSH服务的不稳定,导致链接断联,或者你突然需要携带你的笔记本前往某个没有网络的位置。这时,若你的程序是前台运行的,一旦会话断联,你的程序也自然终止了。简而言之,如何在Linux服务器下让程序后台运行或者如何让程序在本机网络断联的情况下也能持续运行

2.令程序后台运行

2.1 方法一:nohup命令

  1. 瞎眼运行
nohup python your_script.py

注意,此时你的程序转为后台运行了,但是运行过程中的所以打印信息你都看不到,属于蒙着眼在跑程序,是否报错都看不到。

  1. 记录运行日志
nohup python your_script.py > run.log

注意,此时你的程序虽转为后台运行了,但是运行过程中产生的所有信息都记录在文件run.log中。为方便你观察运行情况,可以使用tail命令观察。tail run.log,该命令默认查看文件的最后10条记录。若要观察全部文件,可使用vim run.log打开整个文件。

2.2 方法二:tmux命令

  1. 新建会话
tmux new -s your_session_name
  1. 在新建的会话中运行程序
python your_script.py
  1. 离开会话
按键Ctrl+B+D
注意:先按Ctrl+B,松开后按下D

这样,你在SSH服务终端创建了一个新的会话。即使你携带着你的笔记本电脑到了没网的地方,该会话仍在后台运行。当你到了有网的地方,想要重新链接进会话,可以用如下命令。

  1. 重新连接会话
tmux attach -t your_session_name

当然,tmux还有很多其他的命令,tmux的其他命令使用方法见附录A

3.令程序前台运行、记录运行日志同时打印在前台

python your_script.py 2>&1 | tee run.log

这个命令可以在程序运行时保存运行日志,同时日志也能打印在前台终端上。但是,注意该命令当你的终端会话断联时无法继续运行了。这个命令可以让你在有事情无法继续观察运行状况时,将运行情况记录在日志记录中,同时也打印在终端上。注意,2>&1的意思是将所有打印的信息全部保存在日志文件中。

4.令程序持续运行、记录运行日志同时打印在终端上

结合上述的方式,可以先使用tmux创建新的会话,而后在会话中使用标题3的命令,即可在本机断网的情况下程序能够持续运行,如下所示:

  1. 新建会话
tmux new -s your_session_name
  1. 在新建的会话中运行程序
python your_script.py 2>&1 | tee run.log
  1. 离开会话
按键Ctrl+B+D
注意:先按Ctrl+B,松开后按下D

附录A

tmux常用命令

  1. 新建会话
tmux new -s your_session_name
  1. 查看所有会话
tmux ls
  1. 关闭会话
tmux kill-session -t your_session_name

注意:执行该命令后就无法再使用重新连接会话的命令重连会话了

  1. 退出会话
exit

注意:执行该命令后就无法再使用重新连接会话的命令重连会话了

  1. 离开会话
按键Ctrl+B+D
注意:先按Ctrl+B,松开后按下D
  1. 重新连接会话
tmux attach -t your_session_name

感谢

感谢以下文章给予的帮助:

  1. tmux常用命令
  2. tmux常用命令
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值