title: Linux后台运行
date: 2022-09-03 12:51:35
tags:
- Linux
categories:
- Linux
如何后台运行脚本
方法1:nohup
在执行命令前面加nohup但是CTRL+C就会失效
语法格式:
nohup Command [ Arg … ] [ & ]
参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
nohup ping www.baidu.com &
这样就在后台挂上了
查看进程ping
ps -aux | grep "进程名字也可以是文件"
上面看到的是36640 进程号
ps -aux | grep "文件名"
- a : 显示所有程序
- u : 以用户为主的格式来显示
- x : 显示所有程序,不区分终端机
杀死进程用kill -9 加进程号
kill -9 36640
可以看到已杀死
以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:
nohup /root/runoob.sh > runoob.log 2>&1 &
2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
- 0 – stdin (standard input,标准输入)
- 1 – stdout (standard output,标准输出)
- 2 – stderr (standard error,标准错误输出)
方法2:setsid
查看进程可以看到分支
pstree
它可以把自己换成一个父进程
方法3:screen
安装screen:
安装screen
#centos系统安装命令
yun install screen
#Debian/Ubuntu安装命令
apt-get install screen
他是一个终端模拟器
创建一个进程
screen -dmS "进程名字自己取"
查看会话
screen -list
连接会话
screen -r "会话名称"
查看进程
ps -ef | grep [名字]
kill -9 [PID] //杀死对应PID的进程
1.启动新的screen会话
#创建名为为sillgirl
screen -S sillgril
#然后就可以在里面操作了一个新的终端
./sillgril
2.退出当前screen会话:
按Ctrl+a 再按 d, 即可退出screen, 此时程序仍在后台执行
3.查看当前已有的screen会话:
输入:screen -ls
参考:
⾸先⽤screen -ls查看你想要选的screen:
如果他的状态是Detached的,我们需要输⼊
screen -r <screen的pid>
来进⼊这个screen ,
或者输入
screen -rd <screen的名称>
如果他的状态是Attached的,我们就要输⼊
screen -d <screen的pid>
来使他”Dettached”,
然后再输⼊s
creen -r <screen的pid>
来进⼊这个screen。(必须先detached,否则是进不去的)
4.窗口操作:
Ctrl+a+w: 展示当前会话中的所有窗口;
Ctrl+a+c: 创建新窗口;
Ctrl+a+n: 切换至下一个窗口;
Ctrl+a+p: 切换至上一个窗口;
Ctrl+a+num: 切换至编号为num的窗口;
Ctrl+a+k: 杀死当前窗口;
5. 删除某个会话:
screen -S your_screen_name -X quit
或者
screen -X -S <screen的id> quit
按CTRL+A+D 退出screen 后台还是在运行
标签:Ctrl,screen,runoob,会话,Linux,后台,进程,运行 From: https://www.cnblogs.com/superwinner/p/17053496.html