nohup原理

nohup命令允许在用户退出shell后继续在后台运行程序,忽略SIGHUP信号并重定向输出到nohup.out文件。它通过改变进程的父进程为1,使得进程不会因shell退出而终止。当标准输入、输出或错误是终端时,nohup会尝试重定向它们。这个命令在系统维护和长时间运行任务中非常有用。
摘要由CSDN通过智能技术生成

nohup

nohup 执行会忽略信号 SIGHUP,并将 stdout/stderr 重定向到文件 nohup.out。以便shell在关闭或注销后命令可以在后台继续运行 。nohup做的工作就是让 nohup 后的命令不在是当前 shell 的子命令。而是PPID=1的进程(进程的PPID=1)。这种情况下不能被带回到前台。

signal (SIGHUP, SIG_IGN); // 忽略信号SIGHUP

char **cmd = argv + optind;
execvp (*cmd, cmd); // 在执行这个命令,而不是当前shell

对于输出的重定向,对于STDOUT/STDERR会忽略,然后写入到 nohup.out

  ignoring_input = isatty (STDIN_FILENO);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hermokrates

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值