检查 GMediaRenderer 的状态
Check status of GMediaRenderer
我使用 GMediaRenderer 从 Raspberry Pi 通过 UPNP 发送音频。有时,出于未知原因,我必须通过 SSH 连接到我的 Pi 并发送命令 sudo service gmediarenderer restart
才能使其正常工作。我想向 crontab
或类似命令添加一个命令,定期检查服务是否 运行 正确 。我已经有一个 crontab
条目来检查服务是否为 运行,如果不是则启动。我遇到的问题是,有时即使服务是 运行,它似乎也没有与 UPNP 控制点通信。执行 restart
命令将其恢复,所以我认为这只是服务崩溃但没有关闭的情况。
有谁知道如何以编程方式检查(最好使用 bash 脚本)GMediaRenderer 服务是否启动并且 运行?
我找到了解决办法。命令 gssdp-discover
returns 活动渲染器列表。我每分钟设置一个 sudo crontab
作业到 运行 一个 bash 脚本,检查特定渲染器是否 运行ning,如果找不到则重新启动 gmediarenderer .
以下命令将列出您的活动渲染器:
gssdp-discover -i wlan0 --timeout=3
根据您的特定网络连接更改上面的 wlan0
。在我的例子中,我感兴趣的渲染器被列为 urn:av-openhome-org:service:Info:1
(运行 渲染器处于活动状态和不处于活动状态的命令,并寻找仅在 运行ning 时出现的命令).因此,我的 bash 脚本包含以下内容:
gssdp-discover -i wlan0 --timeout=3 --target=urn:av-openhome-org:service:Info:1 | grep available &> /dev/null
if [ $? == 0 ]; then
echo "OpenHome renderer is already running"
else
echo "restarting gmediarenderer"
/etc/init.d/gmediarenderer stop
/etc/init.d/gmediarenderer start
fi
我使用 GMediaRenderer 从 Raspberry Pi 通过 UPNP 发送音频。有时,出于未知原因,我必须通过 SSH 连接到我的 Pi 并发送命令 sudo service gmediarenderer restart
才能使其正常工作。我想向 crontab
或类似命令添加一个命令,定期检查服务是否 运行 正确 。我已经有一个 crontab
条目来检查服务是否为 运行,如果不是则启动。我遇到的问题是,有时即使服务是 运行,它似乎也没有与 UPNP 控制点通信。执行 restart
命令将其恢复,所以我认为这只是服务崩溃但没有关闭的情况。
有谁知道如何以编程方式检查(最好使用 bash 脚本)GMediaRenderer 服务是否启动并且 运行?
我找到了解决办法。命令 gssdp-discover
returns 活动渲染器列表。我每分钟设置一个 sudo crontab
作业到 运行 一个 bash 脚本,检查特定渲染器是否 运行ning,如果找不到则重新启动 gmediarenderer .
以下命令将列出您的活动渲染器:
gssdp-discover -i wlan0 --timeout=3
根据您的特定网络连接更改上面的 wlan0
。在我的例子中,我感兴趣的渲染器被列为 urn:av-openhome-org:service:Info:1
(运行 渲染器处于活动状态和不处于活动状态的命令,并寻找仅在 运行ning 时出现的命令).因此,我的 bash 脚本包含以下内容:
gssdp-discover -i wlan0 --timeout=3 --target=urn:av-openhome-org:service:Info:1 | grep available &> /dev/null
if [ $? == 0 ]; then
echo "OpenHome renderer is already running"
else
echo "restarting gmediarenderer"
/etc/init.d/gmediarenderer stop
/etc/init.d/gmediarenderer start
fi