linux 实用后台任务

linux实用后台任务

linux 使用后台任务

&          # 这个用在一个命令的最后,可以把这个命令放到后台执行
ctrl + z   #可以将一个正在前台执行的命令放到后台,并且暂停
jobs       #查看当前有多少后台运行的命令
fg         #把后台命令调到前台继续运行 | 如果后台有多个任务 fg后面接序号(jobs命令查看任务序号)
bg         # 将后台暂停的命令,变成继续执行, 多个任务后面接序号 )
ctrl+c      # 前台进程的终止

nohup   #不挂断地运行命令,退出用户后还继续运行的
     nohup command > myout.file 2>&1 &   //输出被重定向到myout.file文件中。
   nohup<程序名>&    //则控制台logout后,进程仍然继续运行,起到守护进程的作用(虽然它不是严格意义上的守护进程)。
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
nohup startWeblogic.sh&
如果想要监控标准输出可以使用:
tail -f nohup.out


   

#Linux下使用Shell命令控制任务Jobs执行
下列命令可以用来操纵进程任务:
  ps 列出系统中正在运行的进程;
  kill 发送信号给一个或多个进程(经常用来杀死一个进程);
  jobs 列出当前shell环境中已启动的任务状态,若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell 从当前的shell环境已知的列表中删除任务的进程标识;
  bg 将进程搬到后台运行(Background);
  fg 将进程搬到前台运行(Foreground); 

1、运行.sh文件

直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令。

(1)&命令
         功能:加在一个命令的最后,可以把这个命令放在后台执行

(2)nohup命令
         功能:不挂断的运行命令
nohub ./red5.sh &
nohup ./test &

2、查看当前后台运行的命令

有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。

(1)jobs命令
       功能:查看当前终端后台运行的任务
[root@con ~]# jobs
[1]+  已停止               vim /root/a.txt
[2]   已停止               vim aa.txg
[3]-  已停止               vim bbb.txt  

      jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。+ 号表示当前任务,- 号表示后一个任务。

(2)ps命令

         功能:查看当前的所有进程
[root@con ~]# ps
 PID TTY          TIME CMD
6367 pts/2    00:00:00 bash
6880 pts/2    00:00:00 vim
6960 pts/2    00:00:00 vim
7141 pts/2    00:00:00 ps

  ps -aux | grep "test.sh"    #a:显示所有程序  u:以用户为主的格式来显示   x:显示所有程序,不以终端机来区分

3、关闭当前后台运行的命令

     kill命令:结束进程

    (1)通过jobs命令查看jobnum,然后执行   kill %jobnum

    (2)通过ps命令查看进程号PID,然后执行  kill %PID

      如果是前台进程的话,直接执行 Ctrl+c 就可以终止了

4、前后台进程的切换与控制

    (1)fg命令

      功能:将后台中的命令调至前台继续运行

      如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

    (2)Ctrl + z 命令

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

    (3)bg命令

      功能:将一个在后台暂停的命令,变成在后台继续执行

      如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。

screen 使用

1 screen命令是什么?

Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。

2 如何安装screen命令

centos   yum install screen
debian/ubuntu    apt-get install screen

3 screen 命令使用方法?

screen -S lnmp  #将建名字为lnmp的会话
Ctrl + a d (按住ctrl 以此再按a,d)  # 临时离开当前会话
screen -r lnmp #恢复lnmp会话工作界面 如果忘记会话名 screen -ls 
screen -r 11792  screen 回话进程id
exit  会提示 screen is terminating 表示成功退出screen会话。

远程演示
screen -S test 创建一个screen会话    另一个终端界面通过 screen -x test  查看

常用快捷键
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
上一篇:Quartz.NET开源作业调度框架系列(四):Plugin Job


下一篇:python 历险记(四)— python 中常用的 json 操作