我正在开发一个通知脚本,该脚本会从 json 文件向我发送消息。我尝试将其作为服务运行,因为这似乎是从命令行启动和停止脚本的最简单方法。
我有以下简单的服务:
description "Notify me service"
author "jo"
start on runlevel [2345]
stop on runlevel [016]
script
exec /usr/bin/notify-send test >> /var/log/test.log 2>&1
end script
该脚本似乎已运行,因为没有任何错误(我还用服务调用的另一个脚本对其进行了测试),但没有出现任何消息。这是为什么?
答案1
这些“服务”在您进入登录屏幕之前就在启动时执行。我不知道您想做什么,但这类事件应该在登录后发生。
如果您想测试脚本的每次执行,您应该将某些内容打印到文件中(notify-send
不生成输出)或照常启动服务。
如果您运行,sudo services nameofscript start
您将无法收到通知,因为您将以 root 身份运行。
我相信你没有尝试去做你要求的事情,但这回答了你所面临的疑问。下次你应该问自己想做什么,你使用的方法以及预期结果是什么。