Linux后台运行命令

Linux后台运行命令

在云服务训练模型时,通常需要花费很多时间,但是又不能保证网络一直连接,很有可能出现网络终端导致终端推出,从而中断现有程序,那么可以考虑使用一些方法,让程序在后台运行,即使终端退出,也能保证程序正常运行。

1、screen命令

Screen是一个全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端。用户可以创建多个独立的终端会话,并在它们之间自由切换,每个会话都可以运行不同的程序或命令,即使在网络连接不稳定或终端意外关闭的情况下,会话中的程序仍会继续运行。用户可以随时回到相应会话查看程序运行状态或与程序进行交互,而无需让程序一直占用前台终端。

安装

ubuntu下使用apt命令安装

sudo apt install screen

centos下使用yum安装

yum install screen

常见命令

创建会话

screen -S session_name:创建一个名为 session_name 的新 screen 会话。不会检录之前创建的screen(也就是会创建同名的screen)
screen -R session_name:创建一个名为 session_name 的新 screen 会话。,如果之前有创建唯一一个同名的screen,则直接进入之前创建的screen

列出会话

screen -ls:列出当前所有的 screen 会话,显示会话的 ID、名称、创建时间等信息。

连接会话

screen -r session_id或screen -r session_name:连接到指定 ID 或名称的 screen 会话。

分离会话

在 screen 会话中,按下Ctrl + A组合键,然后再按下D键,即可将会话分离,使会话在后台继续运行。

关闭会话

在 screen 会话中,输入exit命令,即可关闭当前会话。也可以使用screen -X -S session_name quit命令在外部关闭指定名称的会话。

窗口操作

Ctrl + A然后按C:在当前 screen 会话中创建一个新窗口。
Ctrl + A然后按N:切换到下一个窗口。
Ctrl + A然后按P:切换到上一个窗口。

使用

新建窗口

screen -S first

创建了名为first的窗口

运行程序

创建完成后,就是在新的终端里了,可以直接运行程序

python run.py

退出终端

ctrl+a 然后按d,退出当前会话,会话在后台运行

查看会话

screen -ls

可以看到如下图所示,就是当前系统中后台的会话
产看会话

重新进入会话

screen -r first

重新进入会话可以查看当前程序运行的状态。

2、nohup命令

nohup 命令的主要功能是忽略 SIGHUP(挂起信号)。当用户注销或终端关闭时,系统会向该终端上运行的所有进程发送 SIGHUP 信号,默认情况下,进程接收到这个信号后会终止运行。而使用 nohup 启动的程序会忽略这个信号,从而保证程序在用户退出后能够继续执行。

用法

这个命令比较简单,

nohup command [arguments] &

command:要执行的命令。
arguments:命令所需的参数。
&:将命令放到后台执行。

例如需要在后台运行run.py文件,可以这样运行

nohup python run.py

输出重定向

上面运行命令后,程序的标准输出会保存在nohup.out文件里面,如果需要将程序的输出保存到其它文件,可以这样使用

nohup python run.py > output.log 2>&1 &

> : 将标准输出重定向到 output.log 文件。
2>&1:将标准错误输出也重定向到和标准输出相同的地方,也就是 output.log 文件。

终止任务

如果需要终止使用 nohup 启动的程序,可以使用 ps 命令查找程序的进程 ID(PID),然后使用 kill 命令终止进程。例如:

ps -aux | grep run.py  # 查找进程 ID
kill -9 <PID>  # 终止进程

缺点

ohup 只是简单地让程序忽略 SIGHUP 信号,不能像 screen 或 tmux 那样提供会话管理功能,无法方便地在不同任务之间切换和查看运行状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值