[控场AI]
概念

SIGHUP

Unix/Linux 系统中的挂断信号,在终端连接断开时发送给相关进程,默认行为是终止进程

时间轴 (近 90 天)

10月18日

任何希望代理活得比终端窗口长的应用架构应包含:一个独立的长期进程处于自己的会话中并忽略SIGHUP、持有代理的pty master、UI作为客户端通过socket连接、无人附着时缓冲输出、替换UI二进制不影响运行中的宿主、宿主在没有会话后自行退出。

待验证50%
10月18日

如果一个进程组成为孤儿组且其中有成员处于停止状态,POSIX规定系统会向该组所有成员发送SIGHUP和SIGCONT。

待验证50%
10月18日

bash在收到SIGHUP后退出前,会向其所有运行中或已停止的作业重新发送SIGHUP。

待验证50%
10月18日

macOS自10.15起默认登录shell zsh的HUP选项默认开启,在shell退出时向运行中的作业发送SIGHUP。

待验证50%
10月18日

关闭终端窗口时,内核向会话首进程(通常是shell)发送SIGHUP,随后shell会将该SIGHUP转发给其作业表中的作业,导致AI编程代理进程终止。

待验证50%
10月18日

nohup通过将SIGHUP设为忽略,使得后台进程在终端关闭时不会被SIGHUP终止。

待验证50%
10月18日

disown将作业从shell的作业表中移除,shell收到SIGHUP后没有作业可转发,因此该进程不会收到SIGHUP。

待验证50%
10月18日

setsid使进程在一个没有控制终端的独立会话中运行,从而避免终端挂断时收到SIGHUP。

待验证50%
10月18日

tmux 会话进程主动脱离控制终端(成为守护进程),因此不会被 SIGHUP 信号波及。

待验证50%
8月31日

nohup 命令通过让进程忽略 SIGHUP 信号来实现简单的后台持久化

待验证50%

还有 1 条时间轴事件

全部知识事实 (11)

待验证

任何希望代理活得比终端窗口长的应用架构应包含:一个独立的长期进程处于自己的会话中并忽略SIGHUP、持有代理的pty master、UI作为客户端通过socket连接、无人附着时缓冲输出、替换UI二进制不影响运行中的宿主、宿主在没有会话后自行退出。

50%
待验证

如果一个进程组成为孤儿组且其中有成员处于停止状态,POSIX规定系统会向该组所有成员发送SIGHUP和SIGCONT。

50%
待验证

bash在收到SIGHUP后退出前,会向其所有运行中或已停止的作业重新发送SIGHUP。

50%
待验证

macOS自10.15起默认登录shell zsh的HUP选项默认开启,在shell退出时向运行中的作业发送SIGHUP。

50%
待验证

关闭终端窗口时,内核向会话首进程(通常是shell)发送SIGHUP,随后shell会将该SIGHUP转发给其作业表中的作业,导致AI编程代理进程终止。

50%
待验证

nohup通过将SIGHUP设为忽略,使得后台进程在终端关闭时不会被SIGHUP终止。

50%
待验证

disown将作业从shell的作业表中移除,shell收到SIGHUP后没有作业可转发,因此该进程不会收到SIGHUP。

50%
待验证

setsid使进程在一个没有控制终端的独立会话中运行,从而避免终端挂断时收到SIGHUP。

50%
待验证

tmux 会话进程主动脱离控制终端(成为守护进程),因此不会被 SIGHUP 信号波及。

50%
待验证

nohup 命令通过让进程忽略 SIGHUP 信号来实现简单的后台持久化

50%
待验证

当终端窗口关闭时,其中运行的所有子进程都会收到 SIGHUP 信号并终止

50%

来源文章