我有以下脚本我想每小时运行一次。我已经设置了launchd会为每小时运行,在下面的内容:OSX与su启动
sudo perl /Library/WebServer/CGI-Executables/awstats.pl -config=alpha -update
它不使用sudo也没有sudo运行。我需要sudo脚本才能工作。不确定如何解决这个问题。
任何意见赞赏。
我有以下脚本我想每小时运行一次。我已经设置了launchd会为每小时运行,在下面的内容:OSX与su启动
sudo perl /Library/WebServer/CGI-Executables/awstats.pl -config=alpha -update
它不使用sudo也没有sudo运行。我需要sudo脚本才能工作。不确定如何解决这个问题。
任何意见赞赏。
/etc/crontab
中的Cron任务可以作为root运行,因此他们不需要sudo
来运行,您只需要sudo
来初始编辑文件。
尝试将作业添加到/etc/crontab
,如果它不起作用,请提供您用来运行它的语法以及试图从那里运行它的语法输出,以说明为什么它不起作用。
由于在OSX中不推荐使用crontab,因此转移到启动状态。 –
sudo
以root身份运行一个命令;启动守护进程默认以root用户身份运行,因此sudo
是不必要的也是不相关的。如果该脚本没有作为启动守护进程运行,则其他问题是错误的。检查/var/log/system.log为launchd会遇到试图运行脚本的任何错误,并可能通过增加像这样的文件的.plist拍摄脚本的输出:
<key>StandardOutPath</key>
<string>/var/root/awstats.out</string>
<key>StandardErrorPath</key>
<string>/var/root/awstats.err</string>
此外,还要确保你”正确地重新运行脚本。启动的.plist文件不会像shell命令行那样分析命令,它希望您将预先分析的元素每个命令参数作为单独的字符串:
<key>ProgramArguments</key>
<array>
<string>/usr/bin/perl</string>
<string>/Library/WebServer/CGI-Executables/awstats.pl</string>
<string>-config=alpha</string>
<string>-update</string>
</array>
看来我没有权限。脚本应该被调用,但应用程序报告权限问题。我也看到你直接调用perl脚本。我的bash脚本运行4个perl脚本。所以我分离了launchd条目和它运行的实际脚本。 –
人们,请停止编辑'launchd'到'launch'。 'launchd'是一个OS X程序,不是拼写错误。 – Jasper