首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从进程组、会话、终端概念深入理解守护进程

当我们命令行提示符后输入类似./helloworld程序时,程序运行时终端被占用,此时无法执行其它操作。即使使用....3、会话(session) 多个进程组构成一个「会话」,建立会话进程是会话领导进程,该进程 ID 为会话 SID。会话每个进程组称为一个「作业」。...5、设置文件权限掩码 文件权限掩码是指屏蔽掉文件权限对应位。由于使用 fork()函数新建进程继承了进程文件权限掩码,这就给该进程使用文件带来了诸多麻烦。...常用方法是使用 syslog 服务,将错误信息输入到/var/log/messages。 syslog 是 Linux 系统日志管理服务,通过守护进程 syslogd 来维护。...该守护进程启动时会读一个配置文件/etc/syslog.conf。该文件决定了不同种类消息会发送向何处。

99620
您找到你想要的搜索结果了吗?
是的
没有找到

csapp 第八章 异常控制流 读书笔记

进程,fork函数返回进程PID,进程,fork返回0.因为紫禁城PID总是非零,返回值就提供一个明确方法来判断程序是进程还是进程执行。...进程一个全局作业列表记录着它的当前进程,每一个作业一个条目。addjob和deletejob函数分别向这个作业列表添加和从中删除作业。...当进程创建一个新进程后,它就把这个子进程添加到作业列表。当进程SIGCHLD处理程序回收一个终止进程时,它就从作业列表删除这个子进程。...,因为进程还没有把该进程添加到列表; 5)处理程序执行完毕之后,内核运行进程,进程从fork返回,通过调用addjob错误地把不存在进程添加到作业列表 因此,对于进程main程序和信号处理流某些交错...eg:如果在fork调用返回时,内核刚好调度进程而不是进程运行,那么进程就会正确地把子进程添加到作业列表,然后进程终止,信号处理函数把该作业从列表删除。

30360

linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制

进程拥有进程权限,资源(特性),进程可以运行自己程序(exec),运行完退出(exit),然后唤醒进程。...如果这时进程还有进程还存在,就变成僵尸进程 父子进程关系 进程是由一个进程所产生进程,产生这个子进程进程称为进程 linux系统使用系统调用fork创建进程。...fork复制内容包括进程数据和堆栈段以及进程进程环境。进程终止进程自然终止。 进程继承进程安全性身份、过去和当前文件描述符、端口和资源特权、环境变量,以及程序代码。...随后,进程可能exec自己程序代码。通常,进程进程运行期间处于睡眠(sleeping)状态。...进程进程退出时收到信号而被唤醒,清理剩余结构,然后继续执行其自己程序代码。

3.2K10

Yarn管理放置规则

您还必须确保为指定队列启用了动态自动创建功能。...如果放置规则使用动态创建队列,您必须在创建使用放置规则之前为目标队列启用动态自动创建功能。...创建规则时,UI 将显示所有现有队列作为目标队列选项,但如果未为所选队列启用动态自动创建功能,则会显示警告消息,您无法创建放置规则。有关更多信息,请参阅管理动态队列。...要启用此功能,您必须在步骤 6 设置一个队列。 注意 如果您希望创建不存在目标队列,则必须为您选择队列启用动态自动创建功能。 设置回退动作。 检查您放置规则设置。...使用队列管理器 UI,可以通过以下方式实现此逻辑: 队列层次结构 名称旁边带有螺栓标志队列是启用了动态自动创建项。

2.1K10

UNIX和Linux信号

17) SIGCHLD 进程结束时, 进程会收到这个信号。 如果进程没有处理这个信号,也没有等待(wait)进程,进程虽然终止,但是还会在内核进程表占有表项,这时进程称为僵尸进程。...这种情况我们应该避免(进程或者忽略SIGCHILD信号,或者捕捉它,或者wait它派生进程,或者进程先终止,这时进程终止自动由init进程来接管)。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业所有进程会收到SIGTTIN信号....以上列出信号,程序不可捕获、阻塞或忽略信号有:SIGKILL,SIGSTOP 不能恢复至默认动作信号有:SIGILL,SIGTRAP 默认会导致进程流产信号有:SIGABRT,SIGBUS,...,SIGTTOU 默认进程忽略信号有:SIGCHLD,SIGPWR,SIGURG,SIGWINCH 此外,SIGIOSVR4是退出,4.3BSD是忽略;SIGCONT进程挂起时是继续,否则是忽略

4.1K40

kill -?

与SIGKILL不同是该信号可以被阻塞和处理。通常用来要求程序自己正常退出。17) SIGCHLD进程结束时, 进程会收到这个信号。...如果进程没有处理这个信号,也没有等待(wait)进程,进程虽然终止,但是还会在内核进程表占有表项,这时进程称为僵尸进程。...这种情 况我们应该避免(进程或者忽略SIGCHILD信号,或者捕捉它,或者wait它派生进程,或者进程先终止,这时进程终止自动由init进程来接管)。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号21) SIGTTIN当后台作业要从用户终端读数据时, 该作业所有进程会收到SIGTTIN信号....以上列出信号,程序不可捕获、阻塞或忽略信号有:SIGKILL,SIGSTOP不能恢复至默认动作信号有:SIGILL,SIGTRAP默认会导致进程流产信号有:SIGABRT,SIGBUS,SIGFPE

10920

操作系统复习笔记——第三章 进程

进程可能必须在其进程之间分配资源或共享资源(如内存或文件)。 限制进程只能使用进程资源能防止创建过多进程带来系统超载。 当进程创建新进程时,有两种执行可能: ①进程与进程并发执行。...进程终止其进程原因有很多,如: 进程使用了超过它所分配一些资源。...消息传递模式,通过协作进程间交换消息来实现通信。 消息传递对于交换较少数量数据很有用,因为不需要避免冲突。 对于计算机间通信,消息传递也比共享内存更易于实现。...共享内存允许以最快速度进行方便通信,计算机它可以达到内存速度。 共享内存比消息传递快,消息传递系统通常用系统调用来实现,因此需要更多内核介入时间消耗。...非阻塞 receive:接收者收到一个有效消息或空消息。 阻塞: 有条件等待 两个过程,快等待慢,(因为计算机不能变快,只能变慢)

92710

Linux信号列表

1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是终端控制进程结束时, 通知同一session内各个作业, 这时它们与控制终端不再关联。...17) SIGCHLD 进程结束时, 进程会收到这个信号。 如果进程没有处理这个信号,也没有等待(wait)进程,进程虽然终止,但是还会在内核进程表占有表项,这时进程称为僵尸进程。...这种情 况我们应该避免(进程或者忽略SIGCHILD信号,或者捕捉它,或者wait它派生进程,或者进程先终止,这时进程终止自动由init进程 来接管)。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业所有进程会收到SIGTTIN信号....以上列出信号,程序不可捕获、阻塞或忽略信号有:SIGKILL,SIGSTOP 不能恢复至默认动作信号有:SIGILL,SIGTRAP 默认会导致进程流产信号有:SIGABRT,SIGBUS,

3K40

Linux信号列表及其详解

1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是终端控制进程结束时, 通知同一session内各个作业, 这时它们与控制终端不再关联。...17) SIGCHLD 进程结束时, 进程会收到这个信号。 如果进程没有处理这个信号,也没有等待(wait)进程,进程虽然终止,但是还会在内核进程表占有表项,这时进程称为僵尸进程。...这种情况我们应该避免(进程或者忽略SIGCHILD信号,或者捕捉它,或者wait它派生进程,或者进程先终止,这时进程终止自动由init进程来接管)。...用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业所有进程会收到SIGTTIN信号....以上列出信号,程序不可捕获、阻塞或忽略信号有:SIGKILL,SIGSTOP 不能恢复至默认动作信号有:SIGILL,SIGTRAP 默认会导致进程流产信号有:SIGABRT,SIGBUS,

13.7K30

Python--进程

CPU是可抢占资源一种。但打印机等资源是不可抢占。由于作业调度是对除了CPU之外所有系统硬件资源分配,其中包含有不可抢占资源,所以作业调度不使用轮转法。 轮转法,时间片长度选取非常重要。...(消息触发机制)事情,程序没有两种不同操作来回切换。...UNIX该系统调用是:fork,fork会创建一个与进程一模一样副本,二者有相同存储映像、同样环境字符串和同样打开文件(shell解释器进程,执行一个命令就会创建一个进程)   2...2.不同是:UNIX进程初始地址空间是进程一个副本,提示:进程和进程是可以有只读共享内存区。但是对于windows系统来说,从一开始进程与进程地址空间就是不同。...模块为我们提供基于消息IPC通信机制:队列和管道 队列和管道都是将数据存放于内存 队列又是基于(管道+锁)实现,可以让我们从复杂锁问题中解脱出来, 我们应该尽量避免使用共享数据,尽可能使用消息传递和队列

85310

《Linux命令行与shell脚本编程大全》第十六章 控制脚本

16.1.3 捕获信号 也可以不忽略信号,信号出现时捕获它们并执行相应命令。 trap命令允许你来指定脚本要监看并从shell拦截linux信号。...如果脚本收到了trap列出信号,该信号不再由shell处理,而是交由本地处理。 命令格式: trap commands signals 16.1.4 捕获脚本退出 脚本退出时进行捕获。...16.1.5 修改或移除捕获 脚本不同位置进行不同捕获处理,需要重新使用带有新选项trap命令。 修改了信号捕获后,脚本处理信号方式就会发生变化。 也可以删除以及设置好捕获。...注意:后台进程运行时,任然会使用终端显示器来显示STDOUT和STDERR消息。 所以可以将后台运行程序STDOUT和STDERR进行重定向。...16.2.2 运行多个后台作业 同时启动多个后台作业就可以了。 终端会话中使用后台进程要注意,ps命令输出,每一个后台进程都和终端会话(pts/0)终端联系在一起。

3K61

深入理解计算机系统:进程

1)调用进程进程),返回进程PID; 2)新创建进程进程返回0。 并发执行:父子进程是并发运行独立进程。 相同但是独立地址空间。...进程与进程用户级虚拟地址空间相同拷贝,相同本地变量值、堆、全局变量、以及代码。如代码print出来不一样x。...* 默认options=0,挂起调用进程,直到它等待集合一个进程终止。如果等待集合一个进程刚调用时刻就已经终止了,那么waitpid立即返回。返回已终止进程PID,并去除该进程。.../bin/kill -9 -15213 从键盘发送信号 unix使用作业(job)表示对每一个命令行执行而创建进程,至多一个前台作业和0个或多个后台作业。通过|unix管道连接起多个进程。...shell位每个作业创建一个独立进程组。进程组ID是取自job进程一个。 Ctrl + C发送SIGINT信号到前台进程组每一个进程,终止前台作业

1.2K91

python3--进程

CPU是可抢占资源一种。但打印机等资源是不可抢占。由于作业调度是对除了CPU之外所有系统硬件资源分配,其中包含有不可抢占资源,所以作业调度不使用轮转法。 轮转法,时间片长度选取非常重要。...  异步操作是可以被阻塞住,只不过它不是处理消息时阻塞,而是等待消息通知时被阻塞。...UNIX该系统调用是:fork,fork会创建一个与进程一模一样副本,二者有相同存储映像、同样环境字符串和同样打开文件(shell解释器进程,执行一个命令就会创建一个进程)   2....2.不同是:UNIX进程初始地址空间是进程一个副本,提示:进程和进程是可以有只读共享内存区。...但是对于windows系统来说,从一开始进程与进程地址空间就是不同 进程结束     1.

83320

Salesforce 异步处理 Queueable Apex

,每个排队作业系统资源变为可用时运行,如果 Apex 事务回滚,则不会处理排队等待事务执行任何可排队作业。...要将一个作业链接到另一个作业,请从可排队类execute()方法提交第二个作业。只能从正在执行作业添加一个作业,这意味着每个作业只能存在一个作业。...异步事务(例如,从批处理 Apex 作业),只能使用 System.enqueueJob 将一个作业添加到队列。...可以对每个新作业重复此过程,以将其链接到新作业。对于开发人员版和试用版组织,链接作业最大堆栈深度为 5,这意味着可以链接作业四次,链最大作业数为 5,包括初始可排队作业。...3.使用 System.enqueueJob 链接作业时,只能从正在执行作业添加一个作业。每个可排队作业只能存在一个作业。不支持从同一可排队作业启动多个子作业

1.1K02

父子管道更有效地扩展应用及其存储库结构

每个作业都设置了rules限制只有cap_app目录文件发生变化才会运行作业。重要是trigger用于定义要触发运行配置文件,管道触发后将继续运行。...您可以使用所有常规方法include来使用本地,远程或模板配置文件,最多三个管道。 父子管道另一个有用模式是rules某些条件下触发管道密钥。...管道不会在管道运行成功后再显示流水线成功,而是管道只要被触发成功了则管道成功。strategy: depend将自身状态从触发管道合并到源作业。...本文中,这是一个Ruby脚本,用于编写管道配置文件,但是您可以使用任何脚本语言。管道配置文件与上述非动态示例管道配置文件相同。...triggers阶段管道运行生成管道,与本示例非动态版本运行方式非常相似,但是使用保存artifact文件和指定job。

1.6K21

2.5.5 作业和进程关系

进程是系统资源使用者,系统资源大部分都是以进程为单位分配。而用户使用计算机是为了实现一串相关任务,通常把用户要求计算机完成这一串任务成为作业。...进程在运行过程可以动态地创建一个或多个子进程,执行说明书中语句。例如,对一条编译语句,该进程可以创建一个进程执行编译程序对用户源程序进行编译。...至此,一道进入运行作业全部结束。 (2)分时系统作业与进程关系 分时系统作业提交方法,组织形式均与批处理作业有很大差异。分时系统用户通过命令语言逐条与系统应答式地输入命令,提交作业步。...(3)交互地提交批作业 同时支持交互和批处理操作系统,人们可以用交互方式准备好批作有关程序,数据及作业控制说明书。...系统有专门作业调度进程负责从作业队列中选择作业,为被选取作业创建一个进程进行命令解释程序,解释执行作业控制说明书文件命令。

1.1K10

操作系统-超20000字“总结”

进程同步方法 图片 使用fork系统调用创建进程 使用fork系统调用无参数,fork会返回两次,分别返回进程id和0,返回进程id进程,返回0进程。...(86条消息) 进程和进程关系和示例_xujiali5172923博客-CSDN博客 【Linux 进程】fork父子进程间共享数据分析 - 我得去图书馆了 - 博客园 (cnblogs.com...) 进程——父子进程共享 - _程序兔 - 博客园 (cnblogs.com) (1)父子进程 进程通过进程创建,进程结束和进程运行是一个异步过程,即进程永远无法预测进程什么时候结束。...(如果进程进程结束之前退出,则进程由init接管。init将会以进程身份对僵尸状态进程进行处理) 但是,如果进程先于进程结束,则进程成为孤儿进程。...而如果子进程先于进程退出,同时进程太忙了,无瑕回收进程资源,进程残留资源(PCB)存放于内核,变成僵尸(Zombie)进程,如下图所示: 图片 Linux系统僵尸进程详解 - 良许Linux

1.3K195

什么是守护进程?

大家好,又见面了,我是你们朋友全栈君。 了解守护进程之前,需要先知道什么是什么是终端?什么是作业?什么是进程组?什么是会话?... Linux ,每一个系统与用户进行交流界面称为终端,每一个从此终端开始运行进程都会依附于这个终端,这个终端就称为这些进程控制终端,当控制终端被关闭时,相应进程都会自动关闭。...当然,进程组和作业也并不是完全等价两个概念:如果作业某个进程有创建了新进程,该进程不属于作业,但属于该进程组。 会话(Session)是一个或多个进程组集合。一个会话可以有一个控制终端。...一个会话,有一个前台作业和若干个后台作业。会话SID是会话手进程PID。 为什么只能运行一个前台作业?...为了减少该守护进程负担,防止其回收进程对服务器并发性能影响,可以使用signal(SIGCHLD, SIG_IGN) 对SIGCHLD忽略。这样就可以防止僵尸进程产生。

1K20

Linux进程管理详细解读

Linux系统时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统性能。Linux 系统中有 5 种常见进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。...,与 top 不同 是 top 可以动态显示,而 ps 则是静态显示,是某一时刻快照,静态显示好处是便于其他程序捕获结果,进行处理。...Screen 中有会话概念,用户可以一个会话创建多个 screen 窗口,每一个 screen 窗口中就像操作一个真实 t elnet/SSH 连接窗口那样。...-d :将指定screen作业离线。 -h :指定视窗缓冲区行数。 -m :即使目前已在作业screen作业,仍强制建立新screen作业。 -r:恢复离线screen作业。...会话创建一个会话 ctrl + a,w #会话列表 ctrl + a,p #上一个会话 ctrl + a,n #下一个会话 ctrl + a,0-9 #第0窗口至第9会话间切换 4.3

91930
领券