用户进程:用户启动的,在终端运行的进程。
守护进程:与终端无关联的系统进程。
守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。
在linux系统的引导过程中,初始守护进程启动了多个其他守护进程,包括用于用户登陆的守护进程。
登陆后,用户可以通过(允许手动启动进程的BASH shell)shell来启动终端窗口或虚拟终端。
作业和进程
在Linux中,在使用命令时,使用作业标识符(通常称为作业ID)来代表进程。
作业标识符是特定于shell的数字值,用于唯一地识别在该shell中运行的程序。
使用在整个系统中唯一的进程ID来识别每个进程(独立与shell)。所有作业都有PID,但并非所有的进程都具有可使用的作业标识符。
执行更改要运行的程序的优先级等任务时,请使用PID来代替作业ID。
若要将一个进程从后台切换为前台(从终端启动的进程),请使用作业ID。
前台执行的进程在终端窗口中启动,并一直运行到进程完成,在程序执行完之前,终端窗口不会返回到提示符。
后台进程在启动进程时执行,终端窗口在进程执行完前返回提示符。
在以下情况下,你可以将现有进程从在前台执行切换到在后台执行:
必须从终端窗口或控制台shell启动进程
进程不需要终端窗口中的输入
在前台和后台都可以启动shell中的命令。
前台中的进程可直接接收传送的信号。
bg
一般在shell中启动的进程都在前台运行,如果按ctrl+z,则进程停止。
输入bg可以在后台继续运行停止的进程(输出中显示的&表示进程此时在后台运行)
在命令后追加一个与号&,可启动后台(不是前台)中的进程
jobs
shell的作业控制会为每个通过shell启动的进程分配一个作业ID。
jobs命令可列出作业控制的内容
fg
可以输入fg job_ID将进程切换到前台运行。
使用kill和killall命令来终止进程。
killall命令将停止带有指定命令名称的所有进程
kill命令只停止指定的进程
kill命令需要进程的PID
killall命令需要进程的命令名称
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。
如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?
Shell退出后进程继续执行
当Shell退出后,该Shell下运行的job会收到SIGHUB信号,进而使其退出。然而,很多时候,我们想让其长期运行,不想受到Shell退出的影响。
一种方式就是通过disown -h <psID>命令,让特定job忽略SIGHUB信号
[lihaifeng@localhost Desktop]$ gedit &
[1] 6661
[lihaifeng@localhost Desktop]$ disown -h 6717
由于需要动态的进程号作为参数,要用脚本运行的话,则可以通过%1来获取这个进程号:
[lihaifeng@localhost Desktop]$ disown -h %1
退出Shell的继续执行的方法不止这一种,文章让进程在后台可靠运行中就介绍了几种常用的方法,我就喜欢其中所说的带括号的启动方式。
[lihaifeng@localhost Desktop]$ (gedit &)
守护进程
如果一个进程永远都是以后台方式启动,并且不能受到Shell退出影响而退出,一个正统的做法是将其创建为守护进程。守护进程值得是系统长期运行的后台进程,类似Windows服务。守护进程信息通过ps –a无法查看到,需要用到–x参数,当使用这条命令的时候,往往还附上-j参数以查看作业控制信息,其中TPGID一栏为-1就是守护进程。
相关推荐
Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux...
LINUX守护进程介绍 amd:自动安装NFS(网络文件系统)守侯进程 apmd:高级电源管理 Arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 Autofs:自动安装管理进程automount,与NFS相关,...
编写Linux守护进程
重要的守护进程,其中“crond、syslog、keytable、xinetd、kudzu、iptables”等是需要运行的,echo、echo-udp、daytime、daytime-udp、chargen、chargen-udp主要是做调试用,普通用户基本用不到,可以关闭。
Linux守护进程 Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程
Linux系统中守护进程的创建方法.pdf
Linux系统下守护进程编程方法 参考文章
linux守护进程程序模板带详细注释 守护进程日志 不能被多次运行 详细解释:https://i-beta.cnblogs.com/posts/edit;postId=12095412
16——Linux的进程守护
该文档说明在linux下实现守护进程,代码简单易懂,思路清楚。
Linux中将Tomcat添加到守护进程,让Tomcat随Linux系统自动启动;以及解决执行tomcat start时,“Invalid user name 'tomcat' specified”的异常处理。
Linux守护进程的编程方法 出处未知 pdf格式
linux守护进程,ubunt守护进程
Linux系统编程——特殊进程之守护进程,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/45970087
Linux守护进程的研究Linux守护进程的研究Linux守护进程的研究Linux守护进程的研究
Linux 守护进程的编程方法,几个源码实例
红帽企业Linux 4 Update 2改进了对审核子系统的内核和用户支持。审核子系统可以被系统管理员用来监测...系统管理员还可以使用auditctl工具程序来修改 auditd守护进程运行时的审核参数、syscall规则和文件系统的查看。
在linux下实现守护进程并加上排它锁(文件锁),避免重复启动进程
Supervisor安装配置及问题--linux进程守护 Supervisor安装配置及问题--linux进程守护 Supervisor安装配置及问题--linux进程守护