Soru Başlatma hizmetlerini komut satırından başlat / durdur / yeniden başlat nasıl?


Nasıl yeniden başlatırım, örneğin httpd veya afpd, herhangi bir Mac OS X> = 10.5 (Leopard-) çalıştırarak, GUI kullanmaya gerek kalmadan Sistem Tercihleri ​​-> Paylaşım ve "Web Paylaşımı" nın işaretini kaldırın / işaretini kaldırın.

Debian'ın kanonik eşdeğerini arıyorum. invoke-rc.d apache2 restart.

EDIT: soru hakkında Genel olarak launchd kontrollü hizmetler, özellikle Apache değil (sadece bir örnek).


128
2017-10-26 12:21


Menşei


Şimdiye kadar verilen cevaplardan, tek bir launchctl komutu olmadığını varsaymak doğrudur. tekrar başlat servis? - JS.


Cevaplar:


Merhaba launchctl (8) arkadaşın. Yapılandırma dosyasında bazı servislerin (örneğin sshd) devre dışı bırakıldığını unutmayın; -w onları yüklerken değiştir. İşte bir sshd örneği:

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

Servisi kullanarak durdurabilirsiniz. unload alt komutu.

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

Daha önce tahmin etmiş olabileceğiniz gibi, hizmetleri listelemek için 'liste' alt komutunu kullanın;)

iyi eğlenceler, n


143
2017-10-26 14:00



Ek olarak, launchctl list şikayet etmez ama her şeyi göstermez, sudo launchctl list bunun için gereklidir. - conny
Her şeyi göstermemesi değil, tamamen farklı bir liste gösteriyor. Koştuğunda launchctl Normal bir kullanıcı olarak, kullanıcı oturumunuzda çalışan LaunchAgents'ı gösterir / yönetir; root olarak çalışır, sistem çapında LaunchDaemons'u gösterir / yönetir. - Gordon Davisson
Bu listede "com.openssh.sshd" yi görebiliyorum, bu yüzden bu yapılandırmanın "yüklenmiş" olduğunu tahmin ediyorum. Şimdi nasıl örnek olunur sudo launchctl start com.openssh.sshd yapmıyor her şeyevan bir hata mesajıyla başarısız olmaz, daha da önemlisi bir şey başlatır mı? - conny
@conny Genel durumda kafa karıştırıcı olabilir, ancak bir hizmet yazarken ve örneğin başlangıçta kötü bir şey olduğunu düşündüğünüzden şüpheleniyorsanız, bunu bir kez yükleyebilir ve sorunu gidermek için 'durdur' / 'başlat'ı kullanabilirsiniz. . - nayden
Neden söz yok launchctl start <label> veya launchctl stop <label>? Eğer daha önce başlatılmışsa, plist dosyasını yeniden yüklemeye gerek yoktur (değişmediği sürece). Rahatsız edici değil restart veya reload Komut. Tek komutlu bir yapım yöntemi (örneğin) mongod bir yapılandırma dosyası değişikliği almayı bilen var mı? Ben sadece memnun değilim ... stop ... && ... start .... - Brian


sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist


7
2017-10-26 14:20





Sen arıyorsun 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.

2
2017-10-26 13:27



Ama man-sayfasını okumak bana ne dengi olduğunu söylemiyor invoke-rc.d my-little-daemon restart ... "job_label" anlamına gelir, ancak bana "job_label" lerinin nasıl listeleneceğini söylemez. - conny
Ben nayden'in cevabının bunu ele aldığını düşünüyorum. - eric.s


Basitçe yapabilirsin

sudo launchctl stop com.openssh.sshd

Tam hizmet adını bilmiyorsanız, yapabilirsiniz

sudo launchctl list

Beklediğiniz hizmeti hala bulamıyorsanız, kök kimliği olmadan çalışmaya çalışın:

launchctl list

Ve boşaltma ve servis yüklemeniz gerekmez.


2
2017-12-26 13:05



Bunu denedim ve şimdi kullanamam ssh Mac'imden. Yeniden başlatma düzeltilemiyor. Değiştirme stop ile start ayrıca düzeltmez. - P i
Bunu denedim ve hala Mac'ime ssh edebilirim! - Michael
@ dmitriy-apollonin çalışmıyor, kullanmalısınız sudo unload /System/Library/LaunchDaemons/ssh.plist yerine. - SebMa


sudo apachectl restart

Apache'nin bir parçası olduğu gibi diğer OSseslerle de çalışır.


1
2017-10-26 12:27



Konu özellikle apache'den bahsetmese de, bu yorumu beklemeliydim .... Özür dilerim ama aradığım şey bu değildi :) - conny
Tamam, apachectl kullanarak daha kolay varyant olan httpd parçası yakaladı :) - Sven♦


Sadece eğer aradığınız takdirde launchctl reload, kabuk işlevini ~/.bashrc/.zshrc yaptığım gibi:

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
}

Komut yürütme gibi görünüyor -> lctl reload <your-plist-name>.plist


1
2017-10-12 09:21





Bu adlandırılmış Lingon için küçük ve kullanışlı bir uygulama var. Lingon ücretsiz sürümü burada  bazen bir servisi yeniden başlatmak zor olabilir.

syslog -w

Okuma yine de yardımcı olur.


0
2018-03-08 13:34





Bilmiyorum, aradığınız şey budur ama deneyebilirsiniz top Oldukça kullanışlı bulduğum basit bir komut.


0
2018-04-18 19:11



Ancak bu sadece çalışan proseçeleri gösterir ve herhangi bir başlangıç ​​/ durdurma / yeniden başlatabileceğinizi düşünmüyorum - user411190
Süreçleri durdurmanıza izin verir, ancak çok fazla değil. - chicks