問題タブ [launchd]
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.
macos - Mac OS Xでmongodを停止するためのクリーンな方法は何ですか?
私はmongo1.8.2を実行していて、Macでそれをきれいにシャットダウンする方法を確認しようとしています。
私たちのubuntuサーバーでは、次の方法でmongoシェルからmongoをクリーンにシャットダウンできます。
しかし、私のMacでは、mongodプロセスを強制終了しません。出力は、「シャットダウンする必要がある」ことを示していますが、i ps -ef | grepmongoアクティブなプロセスを表示します。また、mongoシェルを開いて、シャットダウンされなかったようにデータベースにクエリを実行することもできます。
ローカルでのdb.shutdownServer()からの出力は次のとおりです。
プロセスを強制終了できることはわかっていますが、もっとクリーンに実行したいと思います。
macos - launchdシステムデーモン内でのキーチェーンの使用
キーチェーン内からユーザー名とパスワードを保存するlaunchdデーモンがあります。(SecKeychainAddGenericPasswordを使用して)追加(SecKeychainFindGenericPasswordおよびSecKeychainItemDeleteを使用)を削除しようとすると機能しますが、SecKeychainFindGenericPasswordで設定したパスワードを取得できません。関数は戻ります
デーモンが署名され、rootとして実行されています。パスワードはシステムキーチェーン内に保存されます。
sudoを使用して端末からアプリを実行すると、動作します。パスワードにアクセスできます。ただし、launchd内で実行している場合は、機能しません。launchd内でキーチェーンを使用することを妨げるものはありますか?
ありがとう、マーク-エティエンヌ
macos - スポットライトがオンにならない: コンソールの表示: mds[pid] (致命的) サーバー: mds は root として実行する必要があります。終了
私はスポットライトをオフにして、それについて非常に徹底しました。徹底しすぎて元に戻せない。Mac App Store (& App Store は mds に依存) からプログラムをインストールする必要があるため、mds をまったく使用せずに App Store プログラムをインストールする方法について誰かが情報を持っている場合 (スポットライト)、それはさらに良いでしょう。
したがって、私の問題は、スポットライトがルートとしてしか実行できないと不平を言っていることですが、私の人生では、なぜそうでないのかを理解できません。私が理解していることから、 /System/Library/LaunchDaemons の起動デーモンは、正しい権限を持っている限り、ルートとして自動的に起動されます。そのディレクトリのすべてのファイルは rw-rr です。launchd からスポットライトをアンロード/ロードするために使用したコマンドは次のとおりです。
また、/System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support にある mds 実行可能ファイルの名前を変更し、拡張子 .bak を追加します。
それをリロードするには、基本的にこれらの手順を元に戻します。ただし、現在は機能していません。Googleでエラーを検索しましたが、サイコロはありません。Snow Leopard インストール イメージから mds バイナリをリロードしましたが、何もしませんでした。アクセス許可を 4 ~ 5 回修復し、ツリーを手動で調べて、アクセス許可が間違っていることに気付いたかどうかを確認しましたが、すべてが root:wheel 755 であり、Frameworks フォルダーにあり、rw-rr が LaunchDaemons にあるはずです。フォルダ。ただし、mds はコンソールに mds[pid] (Fatal) Server: mds must run as root というメッセージを常に吐き出しています。終了します。
誰が何が起こっているのか手がかりを持っていますか? このコンピューターのセットアップにかなりの時間を費やしており、App Store から 1 つのプログラムをインストールしたいだけなので、今は再フォーマットしたくありません。
ありがとう!
cocoa - 起動 Mac 上のアプリケーション
起動時にアプリケーションを実行する必要があります。そのため、ユーザーが Mac を起動してデスクトップが表示されようとしているときに、アプリケーションを起動する必要があります。アプリを launchd として実行するように設定しました。launchd プロセスの plist で QueuedDirectories フラグを使用しています。そのため、ファイルを配置すると、自動的に起動します。システムの起動時にアプリケーションを起動するにはどうすればよいですか?という質問を見てきました。(Mac OSX、ココア) . 推奨される答えは、launchd を使用することです。
2 つの質問があります -
複数のアカウントが存在する Mac では、アプリケーションは他のユーザー (インストールしていないユーザー) に対して起動しません。Windows では、誰でもプログラムをインストールできます。Macでも同様のことが可能です。もしそうなら、launchd で Queued directory アプローチを使用できます。
Lion の起動/ログイン時にアプリケーションを起動する正しい方法でもあります。または、Apple は、これをよりスマートな方法で実行できるようにする新しい機能を Lion に追加しましたか? 私が調べたところ、すべてがlaunchdを指しているようです。
ユキヒョウとライオンをターゲットにしています。
objective-c - launchd:Machサービスのルックアップに失敗しました
launchdを介してroot権限に恵まれたヘルパーツールは、メインプログラムへのNSConnectionの確立に失敗します。
sudoを使用してHelperToolを手動で起動すると、接続が機能します。これは、サービスが適切に販売されていること、および問題が起動に起因することを証明しています。
ログは次のとおりです。
なぜlaunchdは私の販売されたNSConnectionを見ることができないのですか?
macos - launchd.plistファイルを使用してシェルスクリプトを実行しようとしたときにアクセスが拒否されました
シェルスクリプトを実行してftpフォルダーのバックアップを実行する新しいlaunchagentファイルを作成しようとしています。.plistファイルの内容は次のとおりです。
backup.shファイルは次のとおりです。
ターミナル経由で実行すると、backup.shファイルは完全に正常に実行され、パスワードの入力を求められてから、フォルダーがダウンロードされます。ただし、launchdを使用すると、パスワードの入力を求められることもありません。エラーログファイルに次のように表示されます。
launchctl listは、plistにステータス1を与えます。〜/ etc / ssh_config PasswordConfirmationは1です。.plistファイルは、launchagentsフォルダーにあります。
乾杯
macos - FileMaker スクリプトを開く LaunchAgent
OS X 10.4.11 で launchd を使用して、FileMaker スクリプトの cron のようなスケジュールを取得するのに非常に苦労しています。(私は serverfault で私の初期の苦労について説明しました。 ) 最初、問題は FileMaker スクリプトが GUI を開くことだと思いました。次に、代わりに LaunchAgent を作成しました。これは、ウィンドウ リソースの使用を許可されていますが、まだうまくいきません。
意味のないもののリストを次に示します。
手動でタスクをロードした後に launchctl を使用してタスクを開始すると、すべて正常に動作します。
sudo launchctl start my.script.name
(将来の数時間ではなく) 数分後の StartInterval を選択して .plist をロードすると、すべてが機能します。(私は最初、これは何らかの形でスクリーンセーバーに関連している可能性があると考えていました.ss が実行されると、何かがガベージコレクションされるか、何かが発生します;しかし、ss が開始された後でもスケジュールされていれば、そうでない限り、動作するようです)あまりにも遠い未来です。)
FileMaker プログラムの呼び出しをシェル スクリプト内にラップし、FileMaker プログラムを実行するだけでなく、タイムスタンプをログ ファイルに書き込みました。このログ ファイルを読むと、シェル スクリプトが適切なタイミングで launchd によって実際に呼び出されたことを確認できます。または、少なくとも、ほとんどの理由は次のとおりです。
ログには奇妙なことが示されています。スクリプトを午後 8 時 8 分に起動するようにスケジュールすると、数秒間隔で 2 つの実行が行われます。
[Tue Jan 24 20:07:57 CST 2012] スクリプトを実行しています!
[Tue Jan 24 20:08:00 CST 2012] スクリプトを実行しています!
私はここでロープの終わりのようなものです - 関連するマンページ、Apple の技術文書、StackExchange サイトの他の記事を読みました。私はできる限り宿題を本当にやりました。私を助けることができる人は誰でも、深刻なカルマが彼らに向かっているでしょう.
繰り返しになりますが、下の .plist にはいくつかの粗雑な部分 (XML 定義、ログ情報) が編集されています。(覚えておいてください、これは手動でロードしたときに機能するので、plist 自体は問題ないことがわかっています。)
macos - ブート時に usleep が機能しないのはなぜですか?
launchd
システム ブート (OS X)で実行されるデーモンがあります。デーモンの起動を 3 ~ 5 秒遅らせる必要がありますが、次のコードは起動時にすぐに実行されますが、起動後は適切に遅延します。
システムの起動後に手動で実行すると、正しく遅延します。起動launchd
時に開始すると、コンソールログは遅延前と遅延後の間に遅延がないことを示します-それらは同じ秒で実行されます。
起動後の遅延の後にデーモンを実行できればそれもlaunchd
問題ありませんが、私の読書では、これは不可能であることが示唆されています (おそらく私は間違っていますか?)。
それ以外の場合は、usleep が機能しない理由と、それを修正するために何ができるか、または起動プロセスの早い段階で機能する代わりに使用できる可能性のある遅延を理解する必要があります。
execution - launchd 起動エージェントがコマンドを実行していない
仕事で Mac で Skype と Adium クライアントを使用しています。私は 2 つのスクリプト (問題がある場合は Ruby) を持っており、start_chats
両方kill_chats
のアプリケーションを開始/終了します。これらのスクリプトは実行可能であり、コマンド ラインから正常に動作します。私は以前、Snow Leopard で cron を使用して、スケジュールされた時間にこれらのスクリプトを実行していました。8: start_chats
00 にオフィスに来て、kill_chats
6:00 (18: 00) オフィスを出た後。
私は最近、Lion を搭載した新しいマシンを手に入れたので、cron は非常に不安定に動作し、ほとんどの場合、そのジョブをまったく実行しません (同じ crontab に他のジョブがあります)。そのため、テクノロジーについていくために、plist を使用してこれを作り直すことにしlaunchd
ました。私は多くの「チュートリアル」と、スクリプトの単純なクロックベースの実行を行うために plist を作成する方法について調べてきました。これらのチュートリアルのほとんどの問題は、plist を作成した後に何をすべきかを実際に教えていないことです。これが私のサンプルplistです(この投稿kill_chats
の助けを借りて構築されています):
はい、名前が付けlocal.me.kill_chats.plist
られており、~/Library/LaunchAgents/
ディレクトリに配置しています。キーも使用しようとしましたProgram
が、どちらも機能しませんでした。私が走れば
リストは既にロードされていると表示されており、実際にそれを見ることができます
しかし、システム クロックが plist で指定された時刻に達すると、kill_chats
スクリプトは実行されません。もちろん、毎回テストするために 18:00 まで待っているわけではないので、現在の時刻よりも数分早く変更しますが、それでもスクリプトは実行されません。Lingon (以前の無料バージョン)も試してみましたが、何も動作しないようです。
私は何か間違ったことをしていますか?私のplistに何か問題がありますか?私が言ったように、私はさまざまなサイト (数多くの Stackexchange の投稿でさえも) を調べましたが、私のリストは正しいようです。リストを「使用」する方法がわかりません。どんな助けでも大歓迎です。
osx-lion - OSXLionのスタートアップ/シャットダウンで動作するように起動できません
私はいくつかのオンラインガイドに従って、Macの起動/シャットダウン時にヘッドレスVMを自動的に起動/一時停止させようとしました。まったく動作しません。スタートアップ/シャットダウンでスクリプトを実行するのはこれが初めてなので、非常に基本的なものが不足している可能性があります。その場合は、お詫び申し上げます。
これらは私が従ったステップです:
- ディレクトリを作成しました
/Library/StartupItems/HeadlessVM
そのディレクトリ内に2つのファイルを作成しました。
HeadlessVMのコンテンツ
StartupParameters.plistのコンテンツ
/li>両方のアクションを実行するスクリプトファイルを作成しました。
runvmheadlessのコンテンツ
suspendvmheadlessのコンテンツ
/li>これまでの私のトラブルシューティング:
- ターミナルからスクリプトを実行すると、意図したとおりに機能します。
- 私が実行する
sudo /sbin/SystemStarter (start or stop) "HeadlessVM"
と、それも動作します。 コンソールでは、再起動したときに次のように表示されるだけで、何が問題なのかわかりません。
2/20/12 12:11:09.128 PM SystemStarter:OS Xの起動/シャットダウン(100)で仮想マシンヘッドレスを実行/一時停止しましたが正常に完了しませんでした
助けに感謝します、ありがとう。