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.!