問題タブ [launch-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
379 参照

macos - 別のアプリを起動するアプリのOSXLaunchAgent

私はcassandraのローカルLaunchAgentをセットアップしようとしていbin/cassandraますが、起動するシェルスクリプトであるため、問題が発生しています。

LaunchAgentはスクリプトを起動しますが、cassandraを起動しないか、サブプロセスの生成を許可しません。または、何が起こっているのか完全にはわかりませんが、以前にこの問題が発生したようです。これを機能させるために私が知っている唯一の方法は、LaunchAgentを次の場所から変更することです。

に...

すべての引数をプルする代わりに、LaunchAgentからシェルスクリプトを参照する方法を誰かが知っているかどうか疑問に思っています。ps aux

0 投票する
1 に答える
406 参照

macos - FileMaker スクリプトを開く LaunchAgent

OS X 10.4.11 で launchd を使用して、FileMaker スクリプトの cron のようなスケジュールを取得するのに非常に苦労しています。(私は serverfault で私の初期の苦労について説明しました ) 最初、問題は FileMaker スクリプトが GUI を開くことだと思いました。次に、代わりに LaunchAgent を作成しました。これは、ウィンドウ リソースの使用を許可されていますが、まだうまくいきません。

意味のないもののリストを次に示します。

  1. 手動でタスクをロードした後に launchctl を使用してタスクを開始すると、すべて正常に動作します。

    sudo launchctl start my.script.name

  2. (将来の数時間ではなく) 数分後の StartInterval を選択して .plist をロードすると、すべてが機能します。(私は最初、これは何らかの形でスクリーンセーバーに関連している可能性があると考えていました.ss が実行されると、何かがガベージコレクションされるか、何かが発生します;しかし、ss が開始された後でもスケジュールされていれば、そうでない限り、動作するようです)あまりにも遠い未来です。)

  3. FileMaker プログラムの呼び出しをシェル スクリプト内にラップし、FileMaker プログラムを実行するだけでなく、タイムスタンプをログ ファイルに書き込みました。このログ ファイルを読むと、シェル スクリプトが適切なタイミングで launchd によって実際に呼び出されたことを確認できます。または、少なくとも、ほとんどの理由は次のとおりです。

  4. ログには奇妙なことが示されています。スクリプトを午後 8 時 8 分に起動するようにスケジュールすると、数秒間隔で 2 つの実行が行われます。

    [Tue Jan 24 20:07:57 CST 2012] スクリプトを実行しています!

    [Tue Jan 24 20:08:00 CST 2012] スクリプトを実行しています!

私はここでロープの終わりのようなものです - 関連するマンページ、Apple の技術文書、StackExchange サイトの他の記事を読みました。私はできる限り宿題を本当にやりました。私を助けることができる人は誰でも、深刻なカルマが彼らに向かっているでしょう.

繰り返しになりますが、下の .plist にはいくつかの粗雑な部分 (XML 定義、ログ情報) が編集されています。(覚えておいてください、これは手動でロードしたときに機能するので、plist 自体は問題ないことがわかっています。)

0 投票する
0 に答える
1673 参照

macos - Mac LaunchAgent PLIST が起動しない

Mac LaunchAgent を開発しようとしており、これでテストしています。これにより、コンソールが起動するはずです。

ファイルはロードされているように見えますが (ターミナルにエラーはありません)、コンソールは起動せず、ターミナルにもプロセスがないようです。PHPスクリプトも試しましたが、どちらも起動しませんでした。

0 投票する
2 に答える
1464 参照

macos - OSX launchd: 有線接続を監視する信頼できる手段?

[ネットワーク] ロケーションの変更を処理するために /Library/Preferences/SystemConfiguration を監視したくありません。その結果、変更ごとにスクリプトが 2 回続けて実行されます。

/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist を監視すると、Wi-Fi ではうまく機能しますが、たとえば、Wi-Fi を使用していて、Thunderbolt イーサネットを接続している場合はキャッチされません。

有線接続を監視できる plist はありますか? それとも、5 秒ごとにポーリングし、有線イーサネットがアクティブな状態に変化したときに ~/Library 内のファイルにアクセスする 2 つ目の LaunchAgent を追加するのに行き詰まっていますか?

0 投票する
1 に答える
337 参照

macos - mongod サービスの構成: 起動デーモンまたは起動エージェント?

10gen ビルドを使用して、OS X に MongoDB をインストールしています。
しかし、彼らのインストール チュートリアルは、私には少し不足していることがわかりました。

これまでのところ、起動エージェントおよび起動デーモンmongodとしてインストールされた例を見つけました。起動デーモンと起動エージェントの私の理解に基づいて、どのアプローチが最善/十分な最小ですか?

mongodウィンドウサーバーを介して情報を表示する必要があるため、サービスを起動エージェントとして構成するのが最善ですか、それとも起動デーモンにするだけで十分ですか?

0 投票する
1 に答える
994 参照

macos - パッケージのアンインストール時にLaunchAgentを停止する

LaunchAgent(「トレイ」アイコンが付いた小さなUIアプリ。で定義されているものとしましょう)を提供するアプリを作成します/Library/LaunchAgents/foo.plist

パッケージlaunchctlをインストールすると、このLaunchAgentの説明が自動的に読み込まれ、ログインしているすべてのユーザーのプロセスが開始されます。(つまり、LaunchDaemonsの場合のように、launchctl loadを使用してロードする必要はありません)。

パッケージをアンインストールすると、LaunchAgent plistファイルを含むすべてのファイル/Library/LaunchAgentsが削除されますが、プロセスは引き続き実行されます。

(複数のユーザーがログインしているため、このエージェントのインスタンスがいくつかあります)

さて、rootとして実行しているときに(不特定の数のユーザーに対して)これらのプロセスを停止するようにroot launchdに指示するにはどうすればよいですか?(rootがそれらのエージェントを見ることさえないのでlaunchctlが実行されたことに注意してください)。

(pid-fileskillall more-or-less-unique-executable-nameは最後の手段であり、これらのソリューションを最後の手段として保持しています)

0 投票する
1 に答える
364 参照

macos - Apple launch.h api のドキュメントが必要

launchctl load /System/Library/LaunchAgent/com.example.my.plist としてターミナル経由でサービスをロードしました

ここで、サービスが実行されているかどうかをプログラムで検出し、サービスを開始する必要があります。 http://www.opensource.apple.com/source/launchd/launchd-328/launchd/src/launch.h 上記は、これを実現するために役立つ Apple 提供の launch.h API へのリンクです。

誰かがそのドキュメントを手伝ってくれますか? または、API を使用してサービスのステータスを確認し、サービスを起動する方法を教えてください。

ありがとう。

0 投票する
1 に答える
670 参照

macos - 内部シェル スクリプト: Python 出力をファイルに書き込み、ターミナルから動作します。launchd から実行すると、「入力ストリームが空です」

Python で実行される Geeknote を使用して、Evernote ノートの内容をファイルに書き込む短いシェル スクリプトを作成しました。

スクリプトは、ターミナルから実行すると正常に動作します (2 番目の python コマンドの出力が output.txt に書き込まれます) が、スクリプトを定期的に単独で実行することが理想的です。そこで、スクリプトを実行するために .plist/LaunchAgent を作成しようとしましたが、そうすると、output.txt に書き込まれるのはInput stream is empty... 理由がわかりません。現在、私の .plist は次のようになっています。

0 投票する
2 に答える
1814 参照

macos - Mac アプリ サンドボックス内で LaunchAgent を使用する

サンドボックス内でLaunchAgentをどのように使用しますか? オンデマンドで起動できるメイン アプリケーション内で、UI のない LaunchAgent アプリ バンドルを配布したいと考えています。XPC サービスの代わりにこれが必要な理由は、アイドル時にプロセスが自動的に強制終了されるのKeepAliveを防ぐオプションのためです。launchdこのオプションは、XPC サービスには存在しません。

ドキュメントには、にコピーする必要がある plist があると書かれていますが~/Library/LaunchAgents、これはサンドボックス内では明らかに不可能です。私のためにplistのコピーを処理するシステムAPIのようなものはありますか? Apple のSMJobBlessサンプル コードを見たことがありますが、特権のない LaunchAgent ではなく、特権のある LaunchDaemon を登録するためのもののようです。