我需要启动一个程序,该程序使用bash脚本中的串行端口。问题是,在这之前我需要杀死“-sh”进程以释放它占用的串口(我使用串行控制台,这是与Linux通信的唯一方法)。当我杀死“-sh”时,我的程序没有启动,但是bash脚本继续执行。如果我不杀“-sh”我的程序通常会启动。有关详细信息,请参阅以下代码:
#!/bin/bash
SH_PID=`ps -o comm,pid | egrep -e '^sh' | awk -F " " '{print $2}'`
kill -9 $SH_PID
myprog #start my program
while true
do
sleep 10
echo "script is running..." > /dev/ttyS0
done
有什么想法吗?
答案 0 :(得分:0)
如果在后台运行程序后杀死shell,该怎么办?
#!/bin/bash
SH_PID=`ps -o comm,pid | egrep -e '^sh' | awk -F " " '{print $2}'`
nohup myprog & #start my program in background
kill --HUP $SH_PID
while true
do
sleep 10
echo "script is running..." > /dev/ttyS0
done