web-dev-qa-db-ja.com

コマンドラインからlaunchdサービスを開始/停止/再開するにはどうすればよいですか?

GUIを使用してシステム環境設定->共有および「Web共有」のチェックを外し/チェックしますか?

Debianのinvoke-rc.d Apache2 restartに相当する正規のものを探しています。

編集:問題は一般に起動された制御サービスに関するものであり、特にApacheではありません(これは単なる例です)。

154
conny

こんにちはlaunchctl(8)はあなたの友達です。一部のサービス(sshdなど)は構成ファイルで無効になっているため、ロードするときに-wスイッチを使用する必要があることに注意してください。これがsshdの例です:

$ Sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 

unloadサブコマンドを使用してサービスを停止できます。

$ Sudo launchctl unload  /System/Library/LaunchDaemons/ssh.plist 

すでにご想像のとおり、サービスをリストするには、「list」サブコマンドを使用してください;)

楽しんで、n

169
nayden

サービスを再開するには、launchctl kickstartコマンドと-kオプション。たとえば、Apacheを再起動するには、次を使用できます。

Sudo launchctl kickstart -k system/org.Apache.httpd

この情報はlaunchctlマニュアルページからのものです:

 kickstart [-kp] service-target
          Instructs launchd to run the specified service immediately, regardless of its
          configured launch conditions.

          -k       If the service is already running, kill the running instance before
                   restarting the service.
          [...]
7
jochen

Sudo launchctl load -w /System/Library/LaunchDaemons/org.Apache.httpd.plist

7
user58316

あなたは単にすることができます

Sudo launchctl stop com.openssh.sshd

完全なサービス名がわからない場合は、

Sudo launchctl list

それでも期待したサービスが見つからない場合は、ルートIDなしで実行してみてください。

launchctl list

また、サービスをアンロードおよびロードする必要はありません。

6

launchctlを探しています。

SYNOPSIS
 launchctl [subcommand [arguments ...]]

DESCRIPTION
 launchctl interfaces with launchd to load, unload daemons/agents and gen-
 erally control launchd.  launchctl supports taking subcommands on the
 command line, interactively or even redirected from standard input.
 These commands can be stored in $HOME/.launchd.conf or /etc/launchd.conf
 to be read at the time launchd starts.
3
eric.s

launchctl reloadを探している場合に備えて、私は~/.bashrc/.zshrcでシェル関数を定義できます。

function lctl {
    COMMAND=$1
    PLIST_FILE=$2
    if [ "$COMMAND" = "reload" ] && [ -n "$PLIST_FILE" ]
      then
        echo "reloading ${PLIST_FILE}.."
        launchctl unload ${PLIST_FILE}
        launchctl load ${PLIST_FILE}
      else
        echo "either command not specified or plist file is not defined"
    fi
}

コマンドの実行は-> lctl reload <your-plist-name>.plistのようになります。

2
Dzmitry Hubin
Sudo apachectl restart

Apacheの一部であるだけでなく、他のOSでも動作します。

0
Sven

この名前付きリンゴンのための小さくて便利なアプリがあります。 Lingonフリーウェア版はこちら 場合によっては、サービスの再起動が難しいことがあります。

syslog -w

読書も役立ちます。

0
risyasin