zoukankan      html  css  js  c++  java
  • linux守护进程与&的区别

    1.默认情况下,进程是在前台运行的,这时就把shell占据了(有很多日志打印输出),我们无法进行其他操作。所以对于没有交互的进程,很多时候我们希望将其在后台启动,可以在启动参数的时候加一个&实现这个目的。

    2.切换到后台的进程称为job,切换到后台时会输出相关job信息:

    miaoying@miaoying-OptiPlex-7040:~$ python3 ~/.local/lib/python3.5/site-packages/pgadmin4/pgAdmin4.py &
    [1] 12225

    例如这个: [1] 12225

    [1] 表示job的ID,12225表示进程ID是12225。切换到后台的进程,仍然可以用ps命令查看,或通过jobs命令只查看所有job(后台进程)。

    后台进程会随着shell的退出而结束。

    3.守护进程已经完全脱离终端控制了,而后台进程并未完全脱离终端,在终端未关闭前还是会往终端输出结果。

    4.守护进程在关闭终端控制台时不会受影响,而后台程序会随用户退出而停止,需要在以nohup command &格式运行才能避免影响。

    5.守护进程的会话组和当前目录,文件描述符都是独立的,后台运行只是终端进行了一次fork,让程序在后台执行,这些都没改变。

    查看守护进程:

    ps -axj

    -a表示显示由其他用户所拥有的进程的状态

    -x显示没有控制终端的进程状态

    -j显示与作业有关的信息:会话ID、进程组ID等

    6.使普通进程达到守护进程的部分效果:

    nohup ./a.out &

    7.nohup

    用途:不挂断地运行命令,即使终端ssh关闭了也一直运行

    语法:nohup command [arg ...] [ & ]

    as: 

    nohup ./start.sh &

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

    8.&

    用途:在后台运行,当关闭了ssh终端,程序也会关闭

    as:

    start.sh &
  • 相关阅读:
    Python开发环境搭建
    Python逻辑判断顺序
    PyCharm快捷改变字体大小
    Python类型转换
    前端面试总结2020
    问题总结20-11-02至20-11-09
    问题总结20-11-30至20-12-06
    项目管理培训20-12-06
    日期计算
    数列分段
  • 原文地址:https://www.cnblogs.com/miaoying/p/8716051.html
Copyright © 2011-2022 走看看