• linux进程管理之作业控制


    作业控制 jobs


    ====================================================================================

    作业控制是一个命令行功能,允许一个shell 实例来运行和管理多个命令。
    如果没有作业控制,父进程fork()一个子进程后,将sleeping,直到子进程退出。
    使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让 shell 可以在子进程运行期间返回接受其他命令。


    foreground, background, and controlling terminal

    foreground: 前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。
    background: 后台进程没有控制终端,它不需要终端的交互。


    示例1:
    [root@localhost ~]# sleep 3000 & //运行程序(时),让其在后台执行
    [root@localhost ~]# sleep 4000 //^Z,将前台的程序挂起(暂停)到后台
    [2]+ Stopped sleep 4000

    [root@localhost ~]# ps aux |grep sleep
    root 8895 0.0 0.0 100900 556 pts/0 S 12:13 0:00 sleep 3000
    root 8896 0.0 0.0 100900 556 pts/0 T 12:13 0:00 sleep 4000

    查看被挂起的进程( jobs )
    [root@localhost ~]# jobs //查看后台作业
    [1]- Running sleep 3000 &
    [2]+ Stopped sleep 4000

    恢复到前台继续运行( fg )
    恢复到后台继续运行( bg)
    [root@localhost ~]# bg %2 //让作业2在后台运行
    [root@localhost ~]# fg %1 //将作业1调回到前台

    [root@localhost ~]# kill %1 //kill 1,终止PID为1的进程

    [root@localhost ~]# (while :; do date; sleep 2; done) & //进程在后台运行,但输出依然在当前终端

    [root@localhost ~]# (while :; do date; sleep 2; done) &>/dev/null &


    示例2:如何管理远程主机
    [root@localhost ~]# ssh 172.16.50.240
    [root@www ~]# yum -y install screen
    [root@www ~]# screen -S install_apache

    ==断网后,重新连接==
    [root@www ~]# screen -list
    There are screens on:
    28958.install_nginx (Detached)
    29013.install_apache (Detached)
    2 Sockets in /var/run/screen/S-root.

    [root@www ~]# screen -r 29013

  • 相关阅读:
    ASP.NET Core 个人新闻项目
    C# 检查字符串中是否有HTML标签、返回过滤掉所有的HTML标签后的字符串
    VueCLI 页面加载进度条效果
    replace() 方法使用
    CentOS 7.9安装教程
    在Windows中安装MySQL
    linux安装consul
    jenkins Skywalking安装部署文档总结
    CentOS 7.x安装.NET运行时
    Apollo部署文档
  • 原文地址:https://www.cnblogs.com/anttech/p/10597638.html
Copyright © 2020-2023  润新知