bash函数中的非阻塞nohup?

时间:2015-12-04 11:24:07

标签: 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 Message A
else
  echo Message B
fi

如果播放器正在运行,则该方法返回,我收到消息A.好。 如果它没有运行,它就会启动。但是,条件仅在玩家退出并且消息B被延迟后才返回。

背景: 我正在写一个脚本,它不断地将曲目输入到音频节目的播放列表中。在相应的功能中,播放器以nohup启动,当它还没有运行时。

祝福......

1 个答案:

答案 0 :(得分:3)

nohup命令仍然打开stdout和stderr。像这样重定向到/dev/null

nohup someplayer &>/dev/null &

并且您的函数立即返回。