作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
经过上一章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,你不知道那个是你想要进入的。
总结