【发布时间】:2014-01-08 13:50:50
【问题描述】:
我有这段代码
#!/bin/bash
streamURL=http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8
(
echo "Debugging for stream: $streamURL";
echo "Starting debugging...";
vlc -vvv --color $streamURL --file-caching=10000 2>&1 | sed "s/^/ `date`/";
) | tee debug.txt &
PROCESS_PID=$!
ps -e | grep $PROCESS_PID
echo " killing process pid: "
echo $PROCESS_PID;
kill -9 $PROCESS_PID
ps -e | grep vlc #still there
我的问题是我无法将“vlc ...”命令 PID 保存到变量中以便以后将其杀死。如果我在它后面移动“PROCESS_PID=$!”,它将是空的。 sed 之后还需要管道。有什么建议吗?
【问题讨论】:
-
@mbratch 在上面的代码中,我得到的 PID 来自“tee”命令
-
你为什么要这个pid?如果您只是打算在固定时间段后发送信号,则使用
timeout或将vlc命令放在为您执行超时的包装脚本中可能要简单得多。 -
@WilliamPursell 我不了解
timeout,因为我刚开始使用 bash。谢谢你的建议。我试试看
标签: linux bash debugging pipe pid