Perl OSX与苏一起发射

Perl OSX与苏一起发射,perl,bash,sudo,launchd,Perl,Bash,Sudo,Launchd,我想每小时运行以下脚本。我已使用以下简单bash脚本将launchd设置为每小时运行一次: sudo perl /Library/WebServer/CGI-Executables/awstats.pl -config=alpha -update 它既不与sudo一起运行,也不与sudo一起运行。我需要sudo才能让脚本正常工作。我真的不知道该怎么解决这个问题 非常感谢您的建议。在/etc/crontab中的Cron作业可以作为root运行,因此它们不需要sudo来运行,您只需要sudo来最初

我想每小时运行以下脚本。我已使用以下简单bash脚本将launchd设置为每小时运行一次:

sudo perl /Library/WebServer/CGI-Executables/awstats.pl -config=alpha -update
它既不与sudo一起运行,也不与sudo一起运行。我需要sudo才能让脚本正常工作。我真的不知道该怎么解决这个问题


非常感谢您的建议。

/etc/crontab
中的Cron作业可以作为root运行,因此它们不需要
sudo
来运行,您只需要
sudo
来最初编辑文件


尝试将作业添加到
/etc/crontab
,如果它不起作用,请提供用于运行它的语法,以及从那里尝试运行它的输出,说明它不起作用的原因

sudo
以root用户身份运行命令;启动守护进程默认情况下以root用户身份运行,因此
sudo
是不必要的,也不相关的。如果该脚本没有作为启动守护进程运行,则说明存在其他问题。检查/var/log/system.log以查看在尝试运行脚本时遇到的任何错误,并可能通过向.plist文件中添加类似的内容来捕获脚本的输出:

<key>StandardOutPath</key>
<string>/var/root/awstats.out</string>
<key>StandardErrorPath</key>
<string>/var/root/awstats.err</string>
StandardOutPath
/var/root/awstats.out
标准错误路径
/var/root/awstats.err
另外,请确保脚本运行正确。launchd.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>
编程参数
/usr/bin/perl
/库/WebServer/CGI可执行文件/awstats.pl
-配置=阿尔法
-更新

各位,请停止编辑
launchd
launchd
launchd
是一个OS x程序,不是打字错误。移动到launchd是因为crontab在OSX中不受欢迎。似乎我没有权限。应该调用脚本,但应用程序报告权限问题。我还看到您正在直接调用perl脚本。我的bash脚本运行4个perl脚本。因此,我将启动条目和它运行的实际脚本分开。