Linux进阶命令-nohup&screen

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

经过上一章Linux日志的讲解,我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令,主要从以下几个方面来讲解:一些系统操作,系统查看处理,Linux文本处理,逻辑判断,重定向,网络传输,服务启动,文件句柄等内容。通过这些操作,让你对Linux的操作更加得心应手,具体分成以下章节进行讲解:

Linux进阶命令-echo&date&alias

Linux进阶命令-top

Linux进阶命令-ps&kill

Linux进阶命令-sort&wc

Linux进阶命令-sed&split

Linux进阶命令-awk&uniq

Linux进阶命令-逻辑或&逻辑与

Linux进阶命令-重定向

Linux进阶命令-scp

Linux进阶命令-rsync

Linux进阶命令-rsync-daemon

Linux进阶命令-nohup&screen(本章节)

Linux进阶命令-lsof

Linux进阶命令-小结

由于部分程序是需要在前台启动,如果ssh连接中断或者使用ctrl+c就会以业务中断,这样就导致我们的应用的程序无法持续运行,今天我们就来介绍2个命令,均可以达到该目的。

nohup

nohup 是一个在 Unix 和 Linux 系统中使用的命令,用于在后台运行程序,并使得程序在用户注销或终端关闭时仍然继续运行。nohup 是 "no hang up" 的缩写,表示在用户退出终端后程序不受影响。

基本用法

nohup command [arguments] &

1.command 是你希望在后台运行的命令。

2.[arguments] 是该命令的参数(可选)。

3.&; 符号表示将命令放到后台执行。

详细示例

1.运行命令并在后台继续运行

nohup python my_script.py &

这个命令会启动 my_script.py 脚本,并且即使你关闭终端或者注销,脚本仍然会在后台继续运行。

2.重定向输出

默认情况下,nohup 会将命令的标准输出(stdout)和标准错误输出(stderr)重定向到当前目录一个名为 nohup.out 的文件中,如果长期使用则需要关注这个文件的大小。如果你希望将输出重定向到其他文件,可以这样做:

nohup command [arguments] > output.log 2>&1 &
nohup command [arguments] &> output.log &
#两种写法都可以达到同样的目的

这两种写法就是我们在前面讲过的Linux进阶命令-重定向里面介绍过的。

3.查看后台运行的任务

要查看后台运行的任务,可以使用 jobs 命令,或者 ps 命令来查找特定的进程:

jobs
#或者
ps aux | grep command

4.结束后台任务

要终止后台运行的任务,可以使用 kill 命令。首先找到任务的进程 ID(PID),然后用 kill 发送终止信号:

ps aux | grep command
kill PID

如果需要强制终止,可以使用 kill -9 PID。

screen

screen 是一个终端多路复用器,允许你在一个终端窗口中创建、管理和切换多个虚拟终端会话。它非常有用,当你需要长时间运行任务,或者希望在不同会话之间切换时。这个命令在最小化系统安装里面没有的,如果需要安装则可以使用下面的命令。

yum -y install screen

基本用法

1.启动 screen会话

screen
#这个创建一个新的会议,但是如果有多个则可能无法区分。
screen -S test_screen
#带上名字创建则更容易识别。

2.查看screen会话​​​​​​​

[root@localhost ~]# screen -ls
There are screens on:
  16164.test_screen  (Attached)
  16113.pts-0.localhost  (Attached)
2 Sockets in /var/run/screen/S-root.

3.临时退出screen会话(可再次进入)​​​​​​​

Ctrl+a+d
#这里只是退出会话,里面的执行的业务或者命令还在运行
#你还可以进来

4.永久退出screen会话(不可再进入)

Ctrl+d
#或者
exit
#无法在进入刚才创建的screen

5.进入临时退出的screen会话

screen -r session_id
#这里的id前面的数字编号
#所以创建的时候带上名字,否则多个id,你不知道那个是你想要进入的。

​​​​​​​

总结

  1. 无论是nohup还是screen都可以实现你关闭ssh连接以后,你让它运行的运行的业务它还是持续使用。

  2. nohup需要关注的就是它产生的日志文件,避免打满磁盘,尤其你你在根分区里面运行的nohup命令。

  3. nohup可能更适合需要持续长期运行的程序,screen则可能更适合短时间需要保持它不会因为意外关闭而导致中断的程序。

    图片

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值