1

コマンドラインからルートとして現在のユーザー権限でplistをロードする方法について何か考えはありますか?

現在、30 台のリモート OSX マシンを管理しています。リモート デスクトップを使用して、各マシンの /Library/LaunchAgent plist ファイルを更新することにしました。各マシンには固有の更新が必要になるため、現在ログインしているユーザーとして各マシンでこれを行うのは気が進まない. リモート デスクトップで root ユーザーとして更新を行っています。私の望みは、を使用して plist を停止し、plist をlaunchctl更新して、plist を再起動することです。

私のプロセスはこれです:

  1. を使用して、root として /Library/LaunchAgent plist をアンロードしlaunchtl bsexec PID launchctl unload /Library/LaunchAgents/plistます。このbsexec PID引数により、root ユーザーは非 rootlaunchdプロセスによって管理される plist をアンロードできます。これは正常に機能します。
  2. 次に、ルートとして各コンピューターの plist を更新します。これもうまくいきます。
  3. 最後に、を使用して /Library/LaunchAgent plist を再起動する必要がありlaunchctlます。ここで私のプロセスが崩壊します。plist を使用して起動できませんlaunchctl bsexec PID load /Library/LaunchAgents/plist-- 引数が無効であるというエラーが表示されます。

root として現在のユーザー権限でサービスを再起動する方法について何か考えはありますか?

4

2 に答える 2

0

これがまだ関連している場合(私にとってはそうです)、この回答が役立つことを願っています:

$sudo launchctl bsexec PID /usr/bin/sudo -u USER /bin/launchctl load /Library/LaunchAgents/com.example.agent.plist

このようにして、エラーなしでエージェントを正しいブートストラップにロードします。

クバイ

于 2014-07-15T12:55:54.057 に答える
0

2 番目の launchctl の前に「sudo」を追加してみてください

sudo launchctl bsexec PID sudo launchctl load /Library/LaunchAgents/Your.plist
于 2013-12-17T11:11:28.407 に答える