用户进程:用户启动的,在终端运行的进程。
守护进程:与终端无关联的系统进程。
守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。
在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守护进程是Linux系统中的一种特殊进程,它们在系统启动后独立运行,通常与用户的交互较少,负责执行长期持续的任务,如网络服务、系统监控、定时任务等。这些守护进程在后台持续工作,确保系统的正常运行和服务...
"Linux系统中守护进程的创建方法" Linux 系统中守护进程是指在后台运行而又无终端或登录 shell 与之相关联的进程。守护进程可以周期性地执行某种任务或等待处理某些特定的事件,是一种很有用的进程。Linux 的...
编写 Linux 守护进程 Linux/Unix 守护进程是指在后台运行的进程,不与控制终端交互,独立于控制终端的输入/输出操作。编写 Linux 守护进程需要了解多个概念,如子进程、进程组、会晤期、信号机制、文件、目录和控制...
综上所述,Linux进程监控和进程守护程序是系统运维中不可或缺的一部分,对于保证系统稳定运行和关键业务连续性具有重要的作用。通过合理设计和运用监控与守护机制,不仅可以提高运维效率,还能够最大限度地减少因...
### Linux系统下守护进程编程方法 #### 一、守护进程概览 守护进程(Daemons)是Linux系统中一类特殊的服务程序,它们通常在后台运行,没有控制终端,也不依赖于任何登录Shell。守护进程的设计目标是高可靠性,...
重要的守护进程,其中“crond、syslog、keytable、xinetd、kudzu、iptables”等是需要运行的,echo、echo-udp、daytime、daytime-udp、chargen、chargen-udp主要是做调试用,普通用户基本用不到,可以关闭。
linux守护进程程序模板带详细注释 守护进程日志 不能被多次运行 详细解释:https://i-beta.cnblogs.com/posts/edit;postId=12095412
该文档说明在linux下实现守护进程,代码简单易懂,思路清楚。
3. **启动方式**:守护进程可以通过多种方式启动,比如在系统启动时从启动脚本`/etc/rc.d`中启动,或者由作业规划进程`crond`启动,甚至由用户通过命令行手动启动。 #### 二、守护进程的编程要点 尽管不同Unix环境...
在IT领域,"自动重启+进程守护"是一个重要的系统管理和自动化任务执行的概念。这个主题主要涉及到计算机系统的自动化操作,如定时重启以及确保特定程序在系统启动后或在运行过程中得到稳定执行的进程守护功能。 ...
了解和掌握Linux进程守护机制对于系统管理员和开发者来说至关重要,它可以帮助我们更好地管理和维护长期运行的服务,确保系统的稳定性和可靠性。在实际工作中,根据具体需求选择合适的守护进程实现方式,结合有效的...
在Linux环境中,为了确保应用程序如Tomcat能够随系统自动启动并作为守护进程运行,需要进行一系列的配置步骤。本文将详细介绍如何将Tomcat添加到Linux的守护进程,并处理"Invalid user name 'tomcat' specified"的...
Linux系统编程——特殊进程之守护进程,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/45970087
* 后台运行:守护进程在后台运行,不需要用户交互。 * 独立于控制终端:守护进程不需要控制终端的支持,可以独立运行。 * 提供服务:守护进程提供特定的服务或功能,例如网络服务、数据库服务等。 二、编写 Linux下...
【Linux进程创建与守护进程的创建】 Linux系统通过`fork()`系统调用来创建子进程。在`fork()`成功后,父进程和子进程将共享相同的代码段和数据段,但拥有各自的堆栈和资源。如果希望父进程等待子进程完成,可以使用...
红帽企业Linux 4 Update 2改进了对审核子系统的内核和用户支持。审核子系统可以被系统管理员用来监测...系统管理员还可以使用auditctl工具程序来修改 auditd守护进程运行时的审核参数、syscall规则和文件系统的查看。
守护进程的特性使其能够在系统后台默默工作,不会因为用户退出登录而停止运行。 #### 二、守护进程的编程方法 守护进程的编程涉及一系列步骤,以确保进程能够脱离控制终端并在后台稳定运行。以下是一个典型的守护...
在linux下实现守护进程并加上排它锁(文件锁),避免重复启动进程
在Linux或者Unix系统中,通常会使用守护进程(Daemon)来后台运行服务,不受用户会话的影响。守护进程在启动后会断开与控制终端的连接,避免因终端关闭而被强制结束。而在Windows系统中,类似的概念可以通过服务...