sh被杀后,linux程序无法启动

时间:2015-06-10 12:01:29

标签: linux bash shell

我需要启动一个程序,该程序使用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

有什么想法吗?

1 个答案:

答案 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