服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux让程序在后台运行的四种方法

Linux让程序在后台运行的四种方法

2023-10-08 15:11Pan_peter Linux

本文主要为大家介绍下Linux让程序在后台运行的四种方法,有需要的朋友可以参考下

一、第一种方法(加“&”符号)

如果想让程序在后台运行,执行程序的时候,命令的最后面加“&”符号。

# 执行文件
./test.py &

# 查看是否在后台运行
ps -ef|grep test

# 后台的程序 需要关闭时,需要kill命令停止
killall [程序名]

注意:这种方法,查看运行日志很不方便(不推荐) 

二、第二种方法(nohup命令) 

# 不推荐使用
nohup python -u test.py > test.log 2>&1 & 

参数说明:

test.py: 你需要后台运行的程序

>: 日志文件追加到文件中

test.log: 运行的日志,或你的文件的输出内容

& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。

1>&2 意思是把标准输出重定向到标准错误.

2>&1 意思是把标准错误输出重定向到标准输出。

&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

# 不推荐使用 
nohup python run.py &

# 1、原因:在run.py的目录默认直接生成了nohup.out文件
# 2、原因:有些系统无法执行
# 权限不足时 加sudo
nohup sudo python -u test.py > test.log2>&1 &

三、第三种方法(screen命令)  

Screen是一个全屏窗口管理器,

它在多个进程(通常是交互式shell)之间多路传输物理终端。

# 安装screen
 yum install -y screen

# 创建一个新的窗口
screen -S test

# 进入窗口后 执行文件
python test.py

# 退出当前窗口
ctrl+a+d   (方法1:保留当前窗口)
screen -d  (方法2:保留当前窗口)
exit       (方法3:退出程序,并关闭窗口)

# 查看窗口
screen -ls

# 重新连接窗口
screen -r id或窗口名称

# 示例:
screen -r 344 
screen -r test
Ctrl+a c :创建窗口
Ctrl+a w :窗口列表

Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口

Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口
(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

exit :关闭当前窗口,并且切换到下一个窗口
(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态

四、第四种方法(systemctl命令)  

详情请看: http://t.csdn.cn/XoHUS

因为systemctl比较复杂,所以这里贴上链接

注意:systemctl设置好之后,可以一劳永逸!

五、总结

使用推荐

  • 第一种方法不推荐使用 
  • 第二种方法——在需要查看日志的情况下,建议使用(无需在关闭的那种)
  • 第三种方法——在开启后,还需要关闭或还需要输入一些命令的时候下(推荐)
  • 第四种方法——虽然需要学习的时间比前面几种长,但是学会之后,会很方便

六、实用操作(重点)

因为以上单个操作,都会一些弊端

1、如果让进程在后台运行,并输出日志(nohup命令),就不方便手动停止进程(需要用ps命令查看进程)

2、如果让进程在后台运行,并方便停止(screen命令),就不方便查看程序输出的日志

因此,我们可以使用组合技!(下面有例子)

1、安装screen

# 安装screen
 yum install -y screen

2、新建窗口

# 创建一个新的窗口
screen -S test

3、执行文件

# 进入窗口后 执行文件
python test.py > output.log 2>&1

4、退出该窗口

# 退出当前窗口
ctrl+a+d   (方法1:保留当前窗口)
screen -d  (方法2:保留当前窗口)

5、查看程序输出文件(output.log)

Linux让程序在后台运行的四种方法

6、停止程序

# 1、重新连接窗口
screen -r id或窗口名称

# 示例:
screen -r 344 
screen -r test

# 2、按 Ctrl + C 停止程序运行

Linux让程序在后台运行的四种方法

实在不行,就查看程序的运行状态,也可以通过 ps 命令来查看程序是否在运行

到此这篇关于Linux让程序在后台运行的四种方法的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/Pan_peter/article/details/128875714

延伸 · 阅读

精彩推荐
  • LinuxLinux下的定时任务和延时任务的详解

    Linux下的定时任务和延时任务的详解

    这篇文章主要介绍了Linux下的定时任务和延时任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    若无其事的苹果5472022-09-03
  • LinuxDebian 12 将于 6 月 10 日发布,开发者确认至少存在 100 个已知 Bug

    Debian 12 将于 6 月 10 日发布,开发者确认至少存在 100 个已知 B

    6 月 5 日消息,据外媒 Neowin 报道,代号为 Bookworm 的 Debian 12 定于下周六(6 月 10 日)发布。尽管 Debian 以稳定可靠著称,但开发者 Paul Gevers 已经公开确认新...

    IT之家02023-06-29
  • Linux如何在RAID软磁盘阵列上搭建linux系统

    如何在RAID软磁盘阵列上搭建linux系统

    新配了台电脑,准备装个双系统,windows用来打游戏,linux用来写代码。专门买了两块1T硬盘,想用来搭建RAID0,使用并行I/O来提升电脑的性能。 ...

    Linux教程网4582019-11-22
  • LinuxLinux 下大文件切割与合并

    Linux 下大文件切割与合并

    往往是因为网络传输的限制,导致很多时候,我们需要在 Linux 系统下进行大文件的切割。这样将一个大文件切割成为多个小文件,进行传输,传输完毕之后...

    Escape6762021-07-26
  • Linuxlinux常用命令之tar命令详解和使用实例

    linux常用命令之tar命令详解和使用实例

    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具。linux中最流行的tar是麻雀虽小,五...

    linux命令大全6222019-11-18
  • LinuxLinux下alias命令的用法详解

    Linux下alias命令的用法详解

    在本篇文章里小编给大家分享了关于Linux下alias命令的用法的相关知识点内容,有兴趣的朋友们学习下。...

    Linux教程网6412022-08-15
  • LinuxLinux上也有10个流行的Windows应用程序

    Linux上也有10个流行的Windows应用程序

    今天小编就为大家分享一篇关于在linux上也流行的windows程序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...

    Martins D. Okoi9222022-07-24
  • LinuxLinux基础学习之文件查找find的常见用法

    Linux基础学习之文件查找find的常见用法

    这篇文章主要给大家介绍了关于Linux基础学习之文件查找find的常见用法的相关资料,例如:根据文件名查找、根据正则表达式查找、根据路径查找、根据文...

    程序猿小卡_casper7542022-02-24