Mac-Osx

如何從命令行啟動/停止/重新啟動啟動服務?

  • March 1, 2021

如何重新啟動,例如我的 httpd 或 afpd,執行任何 Mac OS X >= 10.5 (Leopard-),而無需使用 GUI 並轉到系統偏好設置 -> 共享並取消選中/選中“Web 共享”?

我正在尋找與 Debian 的invoke-rc.d apache2 restart.

編輯:問題是關於一般啟動的受控服務,而不是特別是 Apache(這只是一個例子)。

launchctl(8) 是你的朋友。請記住,配置文件中禁用了某些服務(例如 sshd),因此您需要-w在載入它們時使用開關。這是一個 sshd 範例:

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

您可以使用子命令停止服務unload

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

要列出服務,您可能已經猜到了,請使用“list”子命令;)

要重新啟動服務,您可以使用該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.
          [...]

引用自:https://serverfault.com/questions/194832