3

Mac にログインしたときに自動的に実行されるようにしたい Python スクリプトを作成しましたが、これを行うには Launch Agent を使用する助けが必要です。私はSOを広範囲に使用してこの時点まで物事を機能させたので、これが質問する場所だと思いましたが、私はまだこれにかなり慣れていないので、助けが必要です.

これまでに得たものと、まだ必要なものは次のとおりです。

ターミナルから実行できる Python スクリプトがあります。何か重要なことを実行するたびに、定期的にターミナル ウィンドウにテキストを出力します (python 'print' コマンドを使用します)。これは別の場所にもログを作成しますが、開いたままのウィンドウでリアルタイムの更新も必要です。

今必要なのは、ログイン時にこのスクリプトを自動的に開始し、このテキストを出力する Launch Agent です。基本的な Launch Agent が動作するようになりましたが、スクリプトがバックグラウンドで実行され、出力が表示されなくなりました。これまでの調査に基づいて、Lauch Agent .plist で「StandardOutPath」キーワードを使用して、この出力をリダイレクトできるように見えますか? これらのプログラムの stdout/stdin/stderr については、これらすべてがどのように機能するかを理解できるほどにはまだ理解していませんが、この出力を本質的に xterm ウィンドウなどにリダイレクトしたいと考えていました。

このタイプの良い例はどこにも見つからなかったので、もっと良い方法があるかもしれません。正しいことを探しているわけではありません。これがどのように機能するかについての助けや説明は大歓迎です。

更新: 私の作業中の Launch Agent .plist:

<?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.name.WVCS-0.1</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/Path/to/StartupScript</string>
    </array>
</dict>
</plist>
4

1 に答える 1

4

出力を端末に表示する場合は、Launch Agent を使用して Apple Script を開始し、端末を開いてから Python スクリプトを実行します。

tell application "Terminal"
    activate
    do script "/usr/bin/python WVCS-0.1.py"
end tell

またはapplescript /呼び出しウィンドウにテキストを表示する

tell application "Terminal"
    activate
    do shell script "/usr/bin/python WVCS-0.1.py"
end tell

そして、plistを次のように変更します

<array>
    <string>osascript</string>
    <string>/path/to/that/script</string>
</array>

超エレガントではありませんが、お役に立てば幸いです!

于 2011-04-26T02:57:15.917 に答える