【发布时间】:2011-04-20 19:21:07
【问题描述】:
我正在使用 ruby 启动后台服务。我存储此服务的 PID 以便稍后终止它。假设为简单起见,我需要运行后台服务"sleep 1000"。我使用这个命令,它工作正常
child_pid = fork {exec("sleep 1000")} # => 7845
ps
7845 pts/15 00:00:00 sleep
child_pid 存储睡眠的 PID。但是,当我尝试将标准输出重定向到文件(用于记录)时,它的行为会有所不同。
child_pid = fork {exec("sleep 1000 > sleep.log")} # => 7829
这里child_pid是一个sh进程的PID,sleep进程取另一个PID。
ps
7829 pts/15 00:00:00 sh
7832 pts/15 00:00:00 sleep
对此有何解释?
【问题讨论】: