使用nohup或setsid逃脱alarm()进程超时?

Flo Woo

我有一个监视应用程序Zabbix代理,它允许我运行任意命令/脚本并获取返回值。代理配置了超时,任何超过超时的命令都将被杀死。

对于每个运行的命令,它首先通过alarm(timeout)设置超时,然后派生代理进程,然后通过来在新shell中运行该命令execl("/bin/sh", "sh", "-c", command, NULL)

我有一个尴尬的场景,我无法将代理配置超时调整为大于2秒,但是我需要运行的命令将花费10-30秒。

所以我想知道是否有人知道我可以指定一个命令,该命令在运行时可以逃逸超时并运行到完成。我试图nohupsetsid认为它不会继承在父级中设置的超时,但是由于某种原因它仍然被杀死。

这是我的示例。代理期望1在其超时时间内返回,因此我在subshel​​l中启动了长时间运行的命令,并1立即回显以安抚它。/opt/scripts/test/long_running.sh仍然被打死,但。我希望使用nohup并在子外壳中运行可以避免超时。

UserParameter=my.test.cmd,nohup sh -c "(/opt/scripts/test/long_running.sh $1 &); echo 1"

谢谢阅读。

低频

土豆泥

nohup通常会抑制输出并打印其他内容,因此服务器可能看到的Redirecting output to nohup.out不是预期的1

尝试类似的东西

echo 1; nohup sh -c "/opt/scripts/test/long_running.sh $1" >& /dev/null

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash setsid nohup ./prog和-$!不指向子进程

来自分类Dev

Python对Popen子进程使用超时

来自分类Dev

Python:使用Signal.Alarm进行超时异常处理

来自分类Dev

Putty:从使用nohup运行的进程获取信息

来自分类Dev

Bash 使用 && 而不是 ; 创建子进程 对于 nohup 程序

来自分类Dev

无法取消nohup进程

来自分类Dev

使用sed逃脱&字符

来自分类Dev

sudo setsid命令不会产生新的进程组吗?

来自分类Dev

为什么进程被nohup杀死

来自分类Dev

从nohup命令检索进程信息

来自分类Dev

用 Java 创建 Nohup 进程

来自分类Dev

等待子进程超时

来自分类Dev

子进程超时失败

来自分类Dev

GNU进程并行超时

来自分类Dev

等待子进程超时

来自分类Dev

超时子进程pid

来自分类Dev

使用Python在SSH到服务器后使用nohup运行进程

来自分类Dev

如何在已经在后台运行的进程上使用nohup

来自分类Dev

nohup 无法使用 xargs 命令将进程的 pid 保存到文件中

来自分类Dev

nohup 进程的进程 ID 不断更新 - 无法杀死进程

来自分类Dev

超时终止进程和任何子进程

来自分类Dev

为什么nohup后台进程被杀死?

来自分类Dev

为什么我无法取消NOHUP进程?

来自分类Dev

正在运行进程nohup

来自分类Dev

ssh会话之间nohup进程不持久

来自分类Dev

java:延长Applet进程超时

来自分类Dev

Webstorm中的JSCS进程超时

来自分类Dev

Laravel队列进程超时错误

来自分类Dev

如何使vala子进程超时?