1
我使用ruby启动后台服务。我为此服务存储PID以稍后终止。为了简单起见,我需要运行后台服务"sleep 1000"
。我使用这个命令,它可以正常工作Linux在不产生新进程的情况下运行重定向子进程
child_pid = fork {exec("sleep 1000")} # => 7845
ps
7845 pts/15 00:00:00 sleep
child_pid
存储睡眠PID。但是,当我尝试将stdout重定向到文件(用于日志记录)时,它的行为有所不同。
child_pid = fork {exec("sleep 1000 > sleep.log")} # => 7829
在这种情况下,child_pid
是SH过程的PID,和睡眠过程需要另一个PID。
ps
7829 pts/15 00:00:00 sh
7832 pts/15 00:00:00 sleep
对此有何解释?