Linux+服务器后台运行程序

在Linux服务器直接运行程序,程序运行的时间较长,程序经常会因为网络连接问题异常终止,一直盯着程序运行又费时费力,这时后台运行程序是更好的解决方式。But,如果服务器重启了,那所有进程都断掉了,只能重新跑代码。

screen

假如遇到一些比较费时间的程序,但是又不能一直开着电脑观察,这时可以使用screen。

1、如果在screenCRT中开启窗口,然后运行一个程序,当注销时,程序会自动毁掉。

2、使用nohup可以解决此问题,把程序放到后台运行,查看nohup.out可以查看程序运行的怎样了,但是使用nohup把程序放到后台,就再也无法切换程序到前台了,而screen可以。

Screen,就可以理解成Linux下的会话保持软件。

Screen被称之为一个全屏窗口管理器,可以轻松在一个物理终端上获得多个虚拟终端的效果。

服务器终端输入:screen 新建窗口,之后可以输入运行命令

python 复制代码
screen -S 会话名 同上,并且取名,方便管理
ctrl-a d 先同时按ctrl+a,再按d,显示[detached],回到主会话
screen -ls查看当前回话和id
screen -r 会话名/会话id 返回某个screen会话,若有重叠会话名,采用screen -r 会话id.会话名.
screen -S id -X quit 删除会话
screen终端输入exit,彻底退出,屏幕显示[screen is terminating]即可

nohup

nohup 详解 - 今孝 - 博客园 (cnblogs.com)

nohup和&后台运行,进程查看及终止 - 慕尘 - 博客园 (cnblogs.com)

nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。

示例

python 复制代码
nohup python test.py > tmp.log 2>&1 &

命令解析

用途:LINUX命令用法,不挂断地运行命令。

语法:nohup Command [ Arg ... ] [ & ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示"and"的符号)到命令的尾部。

进入要运行的py文件目录下:

python 复制代码
nohup python -u test.py > test.log 2>&1 &

nohup 不挂起的意思 python test.py python运行test.py文件

-u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟> test.log 将输出日志保存到这个log中

2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出; 2>&1 换成2>&1,&

与1结合就代表标准输出了,就变成错误重定向到标准输出.

& 最后一个& ,代表该命令在后台执行

命令运行后会有提示,示例:

1\] 2880 代表进程2880中运行。 查看nohub命令下运行的所有后台进程: ```python jobs jobs -l ``` 查看后台运行的所有进程: ```python ps -aux ``` 查看后台运行的所有python 进程: ```python ps aux |grep python ``` 或者 ```python ps -ef | grep python ``` 删除进程 ```python kill -9 进程id ``` -9 的意思是强制删除 ```python & ``` 指在后台运行。 1.先查看所有进程 ```python ps -ux ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1754367681072467970/046fa07aaaf8598121dadb6ab93d9d21.webp) ![在这里插入图片描述](https://file.jishuzhan.net/article/1754367681072467970/9356bf00deaf68670e13fb8e9508b34a.webp) 还可以使用 ```python ps -ef | grep python ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1754367681072467970/8931f70c184612d198b08f66e7cd4b29.webp) 第一列数字为进程号 2.根据进程号关闭程序 ```python kill -9 pid ``` See https://www.cnblogs.com/ytxwzqin/p/16264385.html https://blog.csdn.net/weixin_39777626/article/details/103292882 服务器前台与后台切换运行 ![在这里插入图片描述](https://file.jishuzhan.net/article/1754367681072467970/b08ce34dcf56c0688df889a680ca8973.webp) https://zhuanlan.zhihu.com/p/380607264 测试 当前测试的程序Test2.py为前台运行,通过按命令:Ctrl+Z,暂停。使用命令bg %1则进入后台运行 ```python Last login: Wed Jan 31 12:24:37 2024 from 113.54.211.15 [TT@ln01 ~]$ python /home/TT/Test2.py ^Z [1]+ Stopped python /home/TT/Test2.py [TT@ln01 ~]$ jobs [1]+ Stopped python /home/TT/Test2.py [TT@ln01 ~]$ bg %1 [1]+ python /home/TT/Test2.py & [TT@ln01 ~]$ kill -9 88711 [TT@ln01 ~]$ ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1754367681072467970/73ce440edc6a2ec1b6ee436f0cef3d18.webp)

相关推荐
猫豆~14 分钟前
软件包管理——2day
linux·运维
大白菜13243 小时前
进程的信号
linux
XH-hui3 小时前
【打靶日记】群内靶机Secure
linux·网络安全
Shingmc33 小时前
【Linux】进程控制
linux·服务器·算法
视觉装置在笑7133 小时前
Shell 变量基础与进阶知识
linux·运维
Web极客码4 小时前
如何通过命令行工具检查 Linux 版本信息
linux·运维·服务器
Lynnxiaowen4 小时前
今天我们继续学习Kubernetes内容pod资源对象
运维·学习·容器·kubernetes·云计算
欢鸽儿4 小时前
Vitis】Linux 下彻底清除启动界面 Recent Workspaces 历史路径
linux·嵌入式硬件·fpga
繁华似锦respect4 小时前
C++ 智能指针底层实现深度解析
linux·开发语言·c++·设计模式·代理模式
远程软件小帮手4 小时前
云电脑挂机功能上线!边上班摸鱼边游戏多开教程
运维·服务器