Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos OS X启动脚本在启动时无法运行?_Macos_Osx Yosemite_Launchd - Fatal编程技术网

Macos OS X启动脚本在启动时无法运行?

Macos OS X启动脚本在启动时无法运行?,macos,osx-yosemite,launchd,Macos,Osx Yosemite,Launchd,我制作了一个启动脚本,以便在启动时为我运行常规脚本,但我无法让它工作。我正在运行OS X Yosemite 10.10.5。这是我的/Library/LaunchDaemons/com.craig.startup.items文件(我刚刚注意到它没有“.plist”扩展名。我将添加扩展名,并在发布此问题后重新启动): 还涉及到更多脚本,但onlaunchd从未启动,因为我从未在/Users/cliff/startup/status.log中看到日志输出。如果我直接以root用户身份运行它,它就可以

我制作了一个启动脚本,以便在启动时为我运行常规脚本,但我无法让它工作。我正在运行OS X Yosemite 10.10.5。这是我的/Library/LaunchDaemons/com.craig.startup.items文件(我刚刚注意到它没有“.plist”扩展名。我将添加扩展名,并在发布此问题后重新启动):


还涉及到更多脚本,但onlaunchd从未启动,因为我从未在/Users/cliff/startup/status.log中看到日志输出。如果我直接以root用户身份运行它,它就可以正常工作。除了可能的扩展之外,我还缺少什么?

您应该在重新启动之前运行守护程序:

sudo launchctl load -w /Library/LaunchDaemons/com.craig.startup.items.plist
另外,请设置+x权限
chmod+x/Users/cliff/startup/onlaunchd
并更新plist代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>Program</key>
   <string>/Users/cliff/startup/onlaunchd</string>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

标签
com.user.loginscript
节目
/用户/cliff/startup/onlaunchd
运行负荷

是否运行了
sudo launchctl load-w/Library/LaunchDaemons/com.craig.startup.items.plist
?啊。。。我得到“/Library/LaunchDaemons/com.craig.startup.items.plist:路径的所有权/权限不正确”。我只是将所有权设置为root:wheel,这似乎可以在cmd行中修复它。你为什么不把这条评论移到一个答案上来,这样我就可以接受,如果重启后一切顺利的话?谢谢!:)工作就像一个符咒,但我不能接受这作为一个答案,直到3分钟过去!再次感谢!哦,不,现在当我重新启动时,它似乎没有以root权限运行我的脚本。当我使用你给我的命令行时,它只运行w/root。我以为启动脚本总是以root运行?我是不是遗漏了什么?你把你的主文件夹加密了吗?您可以为单个用户运行脚本。如果这是确定的,您可以将plist放置到
~/Library/LaunchAgents
,然后设置正确的权限
chown:staff com.crig.startup.items.plist
并启动守护进程
launchctl load-w~/Library/LaunchAgents/com.crig.startup.items.plist
。为了测试,请注销登录。我想我的主文件夹是加密的。(不太确定)这是一家新收购的公司,拥有Mac,我仍然不确定正在运行什么样的加密防病毒程序。(他们加上了McAfee和其他一些东西。)我很困惑。如果我以LaunchAgent的形式运行它,那么它将以我的用户权限级别运行,这将不起作用。我需要它以root用户身份运行。我正在尝试在启动时运行kextunload命令来禁用某些内容。这是更核心的目标。
sudo launchctl load -w /Library/LaunchDaemons/com.craig.startup.items.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>Program</key>
   <string>/Users/cliff/startup/onlaunchd</string>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>