Debian 上的 Red5,输出 PID

Debian 上的 Red5,输出 PID

作为一个 Linux 方面的新手,我正在笨手笨脚地完成这项工作,所以请耐心等待 :)

我想将程序的进程 ID 输出到文件。根据我的阅读,这通常是通过 Linux 维护的一个特殊 pling 变量来实现的:

make_something_run.sh &
echo $! > /var/run/someting.pid

但是当我尝试在 red5 的启动脚本中应用此方法时,它成功创建了 pid 文件,但未在其中找到 id。这是具体脚本:

start)
    echo -n "Starting Red5"
    echo -n " "
    cd $RED5_HOME
    su -s /bin/bash -c "$RED5_HOME/$RED5_PROG.sh &" $RED5_USER
    echo "$RED5_HOME/$RED5_PROG.sh &"
## su -s /bin/bash -c "$RED5_HOME/$RED5_PROG.sh > start.log &" $RED5_USER
    echo $! > /var/run/red5.pid
    wait $!
    sleep 2
   ;;

我尝试过使用和不使用wait $!(我认为它会等待进程启动后再写入文件?),但都没有成功。我唯一的其他想法是使用 grep 和 ps aux 做一些花哨的事情来提取数字,尽管我不知道这是否是一种可靠的方法。

答案1

您需要添加回声
make_something_run.sh & echo $! > /var/run/someting.pid
                                                     ^

http://www.odi.ch/weblog/posting.php?posting=291

编辑:
su -s /bin/bash -c "${RED5_HOME}/${RED5_PROG}.sh & echo \$! > /var/run/red5.pid" $RED5_USER


https://stackoverflow.com/questions/6197165/getting-a-pid-from-a-background-process-run-as-another-user

相关内容