后台运行(后台运行的任务怎么调出来)

  • 生活
  • 2023-04-19 14:20
一、后台运行1.nohup

用途:不挂断地运行命令。

语法:nohupCommand[Arg…][ &]

  无论是否将nohup命令的输出重定向到终端,输出都将附加到当前目录的nohup.out文件中。  如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。  如果没有文件能创建或打开以用于追加,那么Command参数指定的命令不可调用。

退出状态:该命令返回下列出口值:    126可以查找但不能调用Command参数指定的命令。    127nohup命令发生错误或不能查找由Command参数指定的命令。    否则,nohup命令的退出状态是Command参数指定命令的退出状态。

2.&

用途:在后台运行

一般两个一起用

nohupcommand&

eg:

nohup./program/etc/chat.js>>/tmp/output.log2>&1&

只输出错误信息到日志文件:

nohup./program>/dev/null2>log&

不输出日志文件的***:

nohup./program>/dev/null2>&1&3.Linux的重定向0:表示标准输入;1:标准输出,在一般使用时,默认的是标准输出;2:表示错误信息输出;

./program>/dev/null2>log表示将program的错误信息输出到log文件,其他信息丢进/dev/null。

./program>/dev/null2>&1表示将program的错误输出与标准输出重定向到/dev/null,也就是屏蔽任何输出。显式写法就是./program1>/dev/null2>&1.

执行顺序是从左到右依次执行重定向的命令,下面来分析两个案例

>/dev/null2>&1

标准输出重定向到null,所以标准输出无内容。错误输出到标准输出,由于前面标准输出已经重定向到null,所以也无任何输出。

2>&1>/dev/null

错误输出重定向到标准输出,此时标准输出是正常输出的,所以会输出错误内容.标准输出重定向到null,此时标准输出不输出任何内容.二、查看运行的后台进程(1)jobs-l

jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

[root@localhosttest]#jobs-l[1]-运行中nohup./program$1$2$3&(工作目录:/home/test)[2]+运行中nohup./BaiduyunPCS$1$2$3&(2)ps-aux

ps-aux|grepchat.jsa:显示所有程序u:以用户为主的格式来显示x:显示所有程序,不以终端机来区分

注:  用ps-aux|grep查找进程很方便,最后一行总是会grep自己  用grep-v参数可以将grep命令排除掉

ps-aux|grepchat.js|grep-vgrep

再用awk提取一下进程ID ps-aux|grepchat.js|grep-vgrep|awk'{print$2}'

(3)如果某个进程起不来,可能是某个端口被占用

查看使用某端口的进程lsof-i:8090netstat-ap|grep8090

(4)终止后台运行的进程

kill-9进程号

kill命令(1)通过jobs命令查看jobnum,然后执行kill%jobnum(2)通过ps命令查看进程号PID,然后执行kill%PID如果是前台进程的话,直接执行Ctrl+c就可以终止了

三、前后台进程的切换与控制(1)fg命令

将后台中的命令调至前台继续运行如果后台中有多个命令,可以先用jobs查看jobnum,然后用fg%jobnum将选中的命令调出。zsh需要在数字前面加%,bash则直接用数字.

(2)Ctrl+z命令

将一个正在前台执行的命令放到后台,并且处于暂停状态

(3)bg命令

将一个在后台暂停的命令,变成在后台继续执行如果后台中有多个命令,可以先用jobs查看jobnum,然后用bg%jobnum将选中的命令调出继续执行。zsh需要在数字前面加%,bash则直接用数字.

[root@localhosttest]#jobs[1]-运行中nohup./program$1$2$3&(工作目录:/home/test)[2]+运行中nohup./BaiduyunPCS$1$2$3&//使用fg后,将任务2调至前台运行.//fg%2[root@localhosttest]#fg2nohup./BaiduyunPCS$1$2$3^Z//使用ctrl+Z后,将任务2放置到后台,并暂停[2]+已停止nohup./BaiduyunPCS$1$2$3//使用bg后,激活任务2的运行//bg%2[root@localhosttest]#bg2[2]+nohup./BaiduyunPCS$1$2$3&

猜你喜欢