sighup

hup 信号何时影响父进程?
sighup

hup 信号何时影响父进程?

如果我运行./script.sh &,其中脚本如下: #!/bin/bash echo "hello" sleep 30 echo "hello again" sleep 30 touch /root/foo.txt 然后我使用 ps au 来识别“睡眠”调用进程 ID,随后我通过 Kill -HUP 终止该进程。然后程序仍然结束。孩子“睡觉”会通知父母吗? 但是,如果我运行 echo"hello" && sleep 30 && echo "hello again" ...

Admin

惊喜:交互式 Bash 在单独的进程组中运行命令
sighup

惊喜:交互式 Bash 在单独的进程组中运行命令

让我惊讶的是,至少从 Bash 4.4.19 开始,Interactive Bash 在单独的会话中运行命令,运行后请参阅以下进程列表sleep 8888: PGID PID PPID 3150071 3150071 252603 -bash 3194323 3194323 3150071 sleep 8888 您可以看到PGIDofsleep不等于 bash,而其 PPID 等于。 测试在 Ubuntu Bionic 上完成。 有关于这种行为改变的任何文档吗?或者从一开始就一直如此? 在单独的会话中运行命令意味着 ...

Admin

xargs nano 会导致收到 SIGHUP 或 SIGTERM,而 xargs less 则可以
sighup

xargs nano 会导致收到 SIGHUP 或 SIGTERM,而 xargs less 则可以

设想: $ cat t0.txt t1.txt $ cat t1.txt xxx $ sed -n 1p t0.txt | xargs less # OK $ sed -n 1p t0.txt | xargs nano Received SIGHUP or SIGTERM dvl-linux64 $ nano --version GNU nano, version 2.5.3 如何打开文件nano?如果没有xargs,那又怎样? UPD。关于西维金: $ sed -n 1p t0.txt | xargs less # OK $ sed -n 1...

Admin

无法使用 nano 创建新文件,收到 SIGHUP 或 SIGTERM
sighup

无法使用 nano 创建新文件,收到 SIGHUP 或 SIGTERM

我只找到了这个主题的这个问题: 收到 SIGHUP 或 SIGTERM:nano 无法编辑空文件 我正在配置我的网络服务器。之前没有任何问题,我想知道到底是什么导致了这个错误?我已经安装了 samba 和 php。我按照之前评论中的建议尝试了 strace 和auditd,但这并没有给我带来这个问题。 @unity:/var/www/html $ sudo nano info.php Received SIGHUP or SIGTERM @unity:/var/www/html $ sudo rm index.html @unity:/var/www/...

Admin

为什么 huponexit 在以下情况下不起作用?
sighup

为什么 huponexit 在以下情况下不起作用?

Bash 手册说 如果已使用 shopt 设置了 huponexit shell 选项(请参阅第 4.3.2 节 [内置 Shopt],第 62 页),则当交互式登录 shell 退出时,Bash 会向所有作业发送 SIGHUP。 为什么 huponexit 在以下情况下不起作用? 在一个交互式 shell 中 $ shopt -s huponexit $ sleep 4321 & [1] 13816 $ exit 然后在另一个shell中 $ ps -j 13816 PID PGID SID TTY STA...

Admin

为什么关闭终端模拟器窗口会终止 bash 进程,并将 SIGHUP 陷阱更改为不终止?
sighup

为什么关闭终端模拟器窗口会终止 bash 进程,并将 SIGHUP 陷阱更改为不终止?

在 lxterminal 终端模拟器窗口的 bash shell 中,我运行 $ trap "echo hello" SIGHUP $ kill -s HUP $$ hello $ 然后我关闭终端模拟器窗口。 关闭终端仿真器窗口是否只会导致 SIGHUP 发送到控制进程(即 bash 进程)? 由于 SIGHUP 陷阱不会终止 bash 进程,我希望 bash 进程不会终止,但为什么 bash 进程实际上终止了? 如果我将陷阱更改为""(忽略),也会发生同样的情况。 终端模拟器很重要。在 xterm 窗口中运行的 bash 中,将 trap ...

Admin

为什么 Linux 内核不先向包含已停止进程的新孤立进程组发送 SIGCONT,然后再发送 SIGHUP?
sighup

为什么 Linux 内核不先向包含已停止进程的新孤立进程组发送 SIGCONT,然后再发送 SIGHUP?

APUE 说 由于当父进程终止时,该进程组将成为孤立进程,并且该进程组包含已停止的进程,因此 POSIX.1 要求向新孤立进程组中的每个进程发送挂起信号 (SIGHUP) 其次是继续信号(SIGCONT)。 内核在SIGHUP之后发送SIGCONT,但是进程在对SIGHUP起作用之前被SIGCONT唤醒。那么为什么Linux内核不在SIGHUP之前发送SIGCONT呢? 谢谢。 相关但未回答SIGCONT 的默认操作是否在首次处理任何挂起的未阻止信号之前或之后恢复已停止进程的执行? 我没有回答我的问题。 ...

Admin

为什么我们需要向包含已停止进程的新孤立进程组发送 SIGHUP?
sighup

为什么我们需要向包含已停止进程的新孤立进程组发送 SIGHUP?

这UNIX 环境中的高级编程书(“APUE”)说 考虑一个分叉子进程然后终止的进程。虽然这没什么异常(这种情况经常发生),但是如果当父进程终止时子进程停止(使用作业控制)会发生什么?孩子将如何延续,孩子是否知道自己已成为孤儿? ... 如果进程组不是孤立的,则位于不同进程组但在同一会话中的父进程之一有可能会重新启动非孤立进程组中已停止的进程。 ... 由于当父进程终止时,该进程组将成为孤立进程,并且该进程组包含已停止的进程,因此 POSIX.1 要求向新孤立进程组中的每个进程发送挂起信号 (SIGHUP),然后...

Admin

如何在子 shell 退出之前停止子 shell 的子进程(根据 SIGSTOP)?
sighup

如何在子 shell 退出之前停止子 shell 的子进程(根据 SIGSTOP)?

在bash中,当运行时( sleep 123 &),sleep 123当子shell退出时,进程将继续运行。如何sleep 123在其父子 shell 退出之前停止该进程? 我正在尝试查看该sleep 123进程是否会因接收SIGHUP和 而终止SIGCONT。我正在寻找一个例子SIGHUP 是否发送到这个孤立进程,为什么它不终止?和默认情况下,内核是否会向成为孤立进程并包含已停止进程的进程组发送 SIGHUP 来终止所有进程? ...

Admin

默认情况下,内核是否会向成为孤立进程并包含已停止进程的进程组发送 SIGHUP 来终止所有进程?
sighup

默认情况下,内核是否会向成为孤立进程并包含已停止进程的进程组发送 SIGHUP 来终止所有进程?

在Linux编程接口中 要了解为什么孤立进程组很重要,我们需要从 shell 作业控制的角度来看待事物。根据图 34-3 考虑以下场景: 在父进程退出之前,子进程被停止(可能是因为父进程向其发送了停止信号)。 当父进程退出时,shell 将从其作业列表中删除父进程的进程组。子进程被 init 收养并成为终端的后台进程。包含子进程的进程组是孤立的。 此时,没有进程通过 wait() 监视已停止子进程的状态。 由于 shell 没有创建子进程,因此它不知道子进程的存在,也不知道子进程与已故父进程属于同一进程组。此外...

Admin

SIGHUP 是否发送到这个孤立进程,为什么它不终止?
sighup

SIGHUP 是否发送到这个孤立进程,为什么它不终止?

在Linux 编程接口: 当进程组成为孤立进程时,会生成 SIGHUP。 在交互式 bash 过程中, $ ( sleep 123 &) 首先会分叉一个子shell,然后该子shell会分叉来执行sleep 123 &。子 shell 立即退出,无需等待sleep 123完成,因为&.当时, 该进程是sleep孤立进程吗? (我想是的,图34.3) SIGHUP 是否sleep因为进程成为孤儿进程而被发送? (我猜是的,根据引用) 为什么进程没有sleep终止,因为 SIGHUP 已发送给它? (我不知道) ...

Admin

为什么RHEL中的logrotate使用kill -HUP?是否在所有情况下都有必要?
sighup

为什么RHEL中的logrotate使用kill -HUP?是否在所有情况下都有必要?

我看到系统日志记录使用了kill -HUP。 /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript } 我理解使用 -HUP 是因为像 syslog 这样的守护进程,当它...

Admin

捕获 HUP/SIGHUP 在 bash 脚本中不起作用
sighup

捕获 HUP/SIGHUP 在 bash 脚本中不起作用

我有这个 bash 脚本: https://gist.github.com/ORESoftware/06dbb26a48d2ddf48a5a2166834e0836 当我调用ql_acquire_lockshell 时,如果我可以调用mkdir目录,那么我就获取该锁。当我调用 时ql_release_lock,它会删除该目录,简单的东西。 现在,当ql_acquire_lock被调用时,它调用: 陷阱 ql_on_trap 退出陷阱 ql_on_trap SIGHUP 陷阱 ql_on_trap 0 理论上,如果收到任何这些信号,则会ql_relea...

Admin