pgrep --count程序总是返回0,即使有明显的程序实例

时间:2013-12-05 16:02:04

标签: node.js bash raspbian

我有一个应用程序,在错误时重新启动。

由于初始化可能需要一些时间,因此我使用其他应用程序播放加载视频。

由于初始化取决于互联网连接,因此可能会重新启动很长时间,因此我需要在检查程序的实例是否尚未启动后启动视频一次。

我以为我可以这样做:

var arg = 'pgrep --count omxplayer | echo $?';
exec( arg, function(err, stdout, stderr) {
    var data = '' + stdout[0];
    console.log(data);
    if (data === '0') {
        callback(true);
    } else {
        callback(false);
    }
});

如果参数为false,则回调启动omxplayer。

问题是,当我查看我的日志时,我可以看到数据始终为0,这使得应用程序在重新启动时启动omxplayer。

我对pkill -0 omxplayer | echo $?

有同样的问题

如何检查omxplayer是否正在运行?或者我如何修复我的代码?

1 个答案:

答案 0 :(得分:0)

我明白了,错误不在pgrep中,而在于我如何处理stdout。

stdout [0]似乎什么都不做,数据[0]也没有。

我应该如何获得它是data.charAt(0),只有在没有omxplayer启动时返回'0'。

var arg = 'pgrep --count omxplayer | echo $?';
exec( arg, function(err, stdout, stderr) {
    var data = '' + stdout;
    data = data.charAt(0);
    console.log(data);
    if (data === '0') {
        callback(true);
    } else {
        callback(false);
    }
});