1

Mac にログインしたらすぐに実行したい Python スクリプトがあります。インターネットでいろいろな方法を試しました。しかし、どれも機能していないようです。

com.username.scriptname.plistLibrary/LaunchAgents にファイルを置いてみました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.username.scriptname</string>

  <key>Program</key>
  <string>/Users/username/scriptlocation/scriptname.py</string>

  <key>RunAtLoad</key>
  <true/>

  <key>StandardErrorPath</key>
  <string>/tmp/com.username.scriptname.err</string>

  <key>StandardOutPath</key>
  <string>/tmp/com.username.scriptname.out</string>
</dict>
</plist>

.plistファイルに 記載されている場所にスクリプトを配置し、次を実行しましたlaunchctl load /Library/LaunchAgents/com.username.scriptname.plist。しかし、何も起こらないようです。ステップが抜けているか、何か間違っていますか? 設定を変更する必要はありますか?

エラー:

->grep com.username.scriptname /var/log/syslog
grep: /var/log/syslog: No such file or directory

->launchctl list com.username.scriptname
{
    "StandardOutPath" = "/tmp/com.username.scriptname.out";
    "LimitLoadToSessionType" = "Aqua";
    "StandardErrorPath" = "/tmp/com.username.scriptname.err";
    "Label" = "com.username.scriptname";
    "TimeOut" = 30;
    "OnDemand" = true;
    "LastExitStatus" = 19968;
    "Program" = "/Users/username/scriptname.sh";
};

Pythonファイルを配置したときにscriptname.shが表示されるのは奇妙です!

4

1 に答える 1

2

これ.plistは正しいように見えるので、何か問題があるに違いありません (私の推測: 実行可能でないか、スクリプトへのパスが間違っています)。

デバッグのためにできること:

  • ジョブに関する syslog の内容を確認してください: grep com.username.scriptname /var/log/syslog。のようなものがあるかもしれませんcom.apple.xpc.launchd[1] (com.username.scriptname[PID]): Could not find and/or execute program specified by service: 13: Permission denied: /Users/username/scriptlocation/scriptname.py
  • あなたの仕事についてlaunchdが何を言っているかを確認してください:launchctl list com.username.scriptname
  • また:何launchctl list | grep com.username.scriptnameと言っていますか?

また、何man launchd.plistを言わなければならないかを気にしてください:

RunAtLoad <boolean> このオプションのキーは、ジョブのロード時にジョブを 1 回起動するかどうかを制御するために使用されます。デフォルトは false です。投機的なジョブの起動は、システム ブートおよびユーザー ログインのシナリオに悪影響を与えるため、このキーは避ける必要があります。

于 2015-05-09T20:53:19.083 に答える