bash函数中的非阻塞nohup?
我几乎可以肯定我的以下问题有一个简单的解决方案: 我有一个bash脚本,比如blob.bash:bash函数中的非阻塞nohup?,bash,blocking,nonblocking,nohup,Bash,Blocking,Nonblocking,Nohup,我几乎可以肯定我的以下问题有一个简单的解决方案: 我有一个bash脚本,比如blob.bash: #!/bin/bash function player_test(){ if [ "$(pidof someplayer)" ]; then # do some stuff exit 0 else nohup someplayer & exit 1 fi } if $(player_test); then echo
#!/bin/bash
function player_test(){
if [ "$(pidof someplayer)" ]; then
# do some stuff
exit 0
else
nohup someplayer &
exit 1
fi
}
if $(player_test); then
echo Message A
else
echo Message B
fi
如果播放器正在运行,该方法返回,我得到消息A.Good。
如果它没有运行,它将启动。但是,只有在玩家退出且消息B延迟后,情况才会返回
背景:
我正在写一个脚本,它不断地将曲目输入音频节目的播放列表。在相应的函数中,当播放器尚未运行时,它将以nohup启动
最美好的祝愿…命令仍然打开stdout和stderr。重定向到
/dev/null
,如下所示:
nohup someplayer &>/dev/null &
您的函数将立即返回。在
player\u test
中使用return
而不是exit
,并且不要在命令替换中调用它。使用if player\u测试;然后改为
。