如何在MacOS重启后运行shell脚本

643ylb08  于 2022-12-27  发布在  Shell
关注(0)|答案(1)|浏览(239)

我在macOS中写了一个shell脚本来运行一个程序。通过命令行,我可以从任何地方运行脚本。
我已经编写了.plist服务并将其存储到/Library/LaunchAgents/中。我执行加载和启动功能。之后,当我重新启动系统时,脚本没有执行。
在sh文件中,我使用open filename. app打开.app文件。
此外,我尝试了另一种方式,如运行与Automator当我试图运行.app文件在Automator它给我lsopenurlswithrole()失败10810错误.
我将.plist文件存储在~/Library/LaunchAgents/和/Library/LaunchDaemons/中,但仍然没有结果。
我也把.plist文件放在系统首选项-〉用户和组-〉登录项中。但是重新启动后,它会打开shell脚本而不是执行它,也不会在其中运行命令。
下面是我的.plist文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN” “https://www.apple.com/DTDs/PropertyList-l.0.dtd“>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.start.activity</strings>
    <key>LaunchOnlyOnce</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>sh</strings
        <string>-c</string>
        <string>/usr/local/bin/rwm.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

任何人,请帮我从这里出去。

yjghlzjz

yjghlzjz1#

您可能在plist文件中缺少以下内容:

<key>AbandonProcessGroup</key>
<true/>
<key>KeepAlive</key>
<false/>

我有一个类似的脚本,需要那些才能正常运行。注意,如果你需要这个程序打开一个Pty/Tty和其他一些东西,它们会被较新的MacOS安全功能阻止。
如果看到错误lsopenurlswithrole() failed 10810,则Launch Services在启动应用程序时遇到问题。

相关问题