问题标签 [launch-daemon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - 在 macos 上被守护进程调用 bash 脚本卡住了;有任何想法吗?
我是脚本和守护程序的新手,玩了一段时间后,发现自己卡住了。
情况如下:在 macOS 上,我有一个名为“maza”的程序,它使用在线阻止列表更新我的主机文件。我想运行这个程序,比如说,每周一次,以跟上阻止列表的变化。在尝试了 cronjobs 的运气(没有用)之后,我现在正在尝试使用守护进程。所以我有:
- 一个名为 com.mazaupdate.plist 的文件位于 /Library/LaunchDaemons
- 一个名为 scriptmaza.sh 的脚本位于 /etc 中(因为这是主机文件所在的位置)
我的 plist 说明了以下内容(基本上它试图启动脚本 - 此时每 60 秒一次,用于测试目的)。
我的脚本如下(它只是停止 maza,这比“更新”更容易测试,因为目前没有对主机文件进行在线更新)。
测试结束后,plist 将修改为仅每周启动脚本,脚本将更新为“maza update”。
有了我的两个文件,我会:
和
但是,当我在几分钟后测试 maza 的状态时,它总是说“启用”,这意味着停止命令没有正确使用。当然,如果我只是在终端中使用“sudo maza stop”,maza 会正确停止并且状态变为“禁用”,如果脚本有效,应该是这种情况。
这就是我所拥有的一切。任何想法?谢谢!肯
编辑:
在下面@pmdj 的评论之后,这就是我们的立场。
在 scriptmaza.sh 上 chmod +x 后,权限为:-rwxr-xr-x@ 1 ken wheel 80 17 Feb 12:22 /etc/scriptmaza.sh
修改后的 scriptmaza.sh 现在是:
加载守护程序一段时间后,file.dat 确实会每分钟创建并编辑一次,并使用正确的日期,这意味着守护程序确实会启动脚本。
控制台显示正在正确加载和卸载的守护进程,并且 scriptmaza 记录了许多行,上面写着“tput:$TERM 没有值并且没有指定 -T”
同时,maza 的状态仍然是“启用”。