Linux后台运行
#如何后台运行脚本
方法1:nohup
在执行命令前面加nohup但是CTRL+C就会失效
语法格式:
| 1 | nohup Command [ Arg … ] [ & ] | 
参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
| 1 | nohup ping www.baidu.com & | 

这样就在后台挂上了
查看进程ping
| 1 | ps -aux | grep "进程名字也可以是文件" | 
上面看到的是36640 进程号
| 1 | ps -aux | grep "文件名" | 
- a : 显示所有程序
- u : 以用户为主的格式来显示
- x : 显示所有程序,不区分终端机
 杀死进程用kill -9 加进程号1 kill -9 36640  
 可以看到已杀死
 以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:2>&1 解释:1 nohup /root/runoob.sh > runoob.log 2>&1 & 
 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
- 0 – stdin (standard input,标准输入)
- 1 – stdout (standard output,标准输出)
- 2 – stderr (standard error,标准错误输出)
方法2:setsid
查看进程可以看到分支
| 1 | pstree | 
它可以把自己换成一个父进程
方法3:screen
安装screen:
| 1 | 安装screen | 
他是一个终端模拟器
创建一个进程
| 1 | screen -dmS "进程名字自己取" | 
查看会话
| 1 | screen -list | 
连接会话
| 1 | screen -r "会话名称" | 
| 1 | 查看进程 | 
1.启动新的screen会话
| 1 | #创建名为为sillgirl | 
2.退出当前screen会话:
| 1 | 按Ctrl+a 再按 d, 即可退出screen, 此时程序仍在后台执行 | 
3.查看当前已有的screen会话:
| 1 | 输入:screen -ls | 
参考:
| 1 | ⾸先⽤screen -ls查看你想要选的screen: | 
4.窗口操作:
| 1 | Ctrl+a+w: 展示当前会话中的所有窗口; | 
5. 删除某个会话:
| 1 | screen -S your_screen_name -X quit | 
按CTRL+A+D 退出screen 后台还是在运行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sunset.!

