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)

相关推荐
cui_ruicheng3 小时前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
蚰蜒螟3 小时前
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程
linux·windows·microsoft
运维全栈笔记3 小时前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
dllmayday4 小时前
Linux 上用终端连接 WiFi
linux·服务器·windows
ACP广源盛139246256734 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
峥无5 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
用户2367829801686 小时前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux
码云数智-大飞6 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Strugglingler6 小时前
【systemctl 学习总结】
linux·systemd·systemctl·journalctl·unit file
Harvy_没救了7 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx