如何让脚本在退出终端的时候一直在运行?
nohup
用法 nuhup command & 会把在command中的输出重定向到当前文件的nohup.out文件中
setsid
用法 setsid command
subshell
(command &) 在当前shell的子shell的后台运行
screen
重点需要说的,因为好用不麻烦。
screen -S session 创建一个新的会话窗口,并进入新会话,exit退出这个会话
1 | ~]# screen -S nohup |
screen vi /etc/fstab 创建新的会话窗口来运行这个命令
1 | ~]#screen vim /etc/fstab |
2 | |
3 | # |
4 | # /etc/fstab |
5 | # Created by anaconda on Sat Sep 17 15:44:12 2016 |
6 | # |
7 | # Accessible filesystems, by reference, are maintained under '/dev/disk' |
8 | # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info |
9 | # |
10 | /dev/mapper/centos-root / xfs defaults 0 0 |
11 | UUID=bbcbd23f-8840-40ed-8ed8-126a08a6e79a /boot xfs defaults 0 0 |
12 | /dev/mapper/centos-home /home xfs defaults 0 0 |
13 | /dev/mapper/centos-swap swap swap defaults 0 0 |
14 | |
15 | [screen is terminating] |
16 | 退出这个文件也就退出了这个会话 |
ctrl+a+d 快捷键退出当前会话窗口,当时不终止这个窗口
screen -ls 查看会话窗口
1 | ~]#screen -ls |
2 | There is a screen on: |
3 | 1882.nohup (Detached) |
4 | 1 Socket in /var/run/screen/S-root. |
screen -r 编号 恢复会话
1 | ~]#screen -r 1882 |
2 | [root@www ~]# |
screen -list 会显示该会话为dead状态
screen -wipe 命令清除该会话
ctrl+a+k 快捷键kill当前会话
会话共享,可以实现linux文本界面下的屏幕共享
screen -x 编号
1 | ~]# screen -x 1882 |
screen锁定 ctrl+a+s
解锁 ctrl+a+q
密码锁 ctrl+a+x
发送命令到screen会话
1 | ~]# screen -S jusene -X screen ping www.baidu.com |
2 | ~]#screen -ls |
3 | There is a screen on: |
4 | 1939.jusene (Detached) |
5 | 1 Socket in /var/run/screen/S-root. |
6 | 这个命令在一个叫做jusene的screen会话中创建一个新窗口,并在其中运行ping命令。 |