LaunchAgents ve Daemons'u Durdurma


23

Üniversite ortamında yönetici olarak çalışıyorum. Zorluklardan biri, CS major öğrencilerinin yükledikleri hizmetleri durdurmaktır. Bir süre önce yönetici erişimine sahip oldular ve bazı sistemlere fırlatma ajanları ve cinler kurdular. Sorun, bunların launchagents dizininde veya launchdaemons dizininde bulunmamasıdır.

Benim sorum bu daemon hizmetleri için yolu nasıl bulacağımız, bir sonraki adım bunları nasıl durduracağınız. Bunlardan bazıları tekrar tekrar başlayabildiğinden (belirli bayraklara dayanarak).


Benzer bir sorun. İle başlayan bir daemon'u durduramıyorum launchctl load -wF /Library/LaunchDaemons/name.of.this.plist.
Meltemi

Yanıtlar:


21

Bu önyükleme için öğeyi durdurmak istiyorsanız, üzerinden başlatmak için bir kaldırma komutu verin launchctl. Kalıcı bir düzeltme için, plist'e true değerine sahip devre dışı bırakılmış bir anahtar ekleyin veya dosyayı launchd'ın otomatik olarak taramayacağı bir klasöre silin / taşıyın.

  • launchctl unload /System/Library/LaunchAgents/com.apple.AppStoreUpdateAgent.plist

Launchctl için man sayfasının işleri kontrol etmek için güzel belgeleri vardır. CS binbaşıların genel yenilgisine gelince, mevcut elma plistlerini beklemediğiniz bir şey yapmak için düzenlediklerini de düşünebilirsiniz, bu yüzden işletim sistemini yeniden yüklemek ve kullanıcı verilerini geri taşımak çok daha kolay olacaktır / Sistem / Kütüphane, / Kütüphane alanına herhangi bir plist dosyasını yeniden kurmayı not etmek için özel bir not vererek (ve ayrıca yönetici kullanıcıların ~ / Kütüphanesini de denetleyin). sistem temelde oyun bitmiştir ve savunma (bulma ve devre dışı bırakma) değişiklikleri suçun aksine çok zaman alıcıdır (sistemi bilinen iyi bir kaynaktan yeniden yükleme ve değiştirilen dosyaların algılanmasını sağlamak için yapılandırma yönetimi araçlarını kullanma).


mesele şu ki, plistin nerede saklandığını bilmiyorum. LaunchAgents dizininde arama yaptım ve orada uygulamalar plist görmüyorum.
Prashant

Her yerde olabilirler. Güvenli moda önyükleme yapabilir ve bir launchctl list çıktısını normal önyükleme listesiyle karşılaştırabilirsiniz. mdfind size hileli işleri içeren dosyaları gösterecektir (eğer bunları spot ışığından hariç tutmadılarsa). Ayrıca, önyükleme sırasında hangi dosyaları okuduğunu izlemek için teorik olarak fs_usage'i launchd'e karşı çalıştırabilirsiniz, ancak yine de her bir plist dosyasını incelemeniz gerektiği gerçeğiyle birlikte, açılışta fs_usage'i çalıştırmanın lojistiği temizliğin aksine "değişiklikleri tespit etmek ve cerrahi olarak çıkarmak" için yapılan çalışma.
bmike

1
Sistemdeki her .plist'i gerçekten bulmak istiyorsanız, bunu yapar. Uzun bir liste. find / -type f -name "*.plist"
afragen

man launchctl unload Önceki sürümlerde, bu seçenek yapılandırma dosyasını değiştirirdi. Şimdi Disabled (Devre Dışı) anahtarının durumu disk üzerinde başka bir yerde saklanır. .. (
Nakilon

@Nakilon Sürümler konusunda kesin olabilir misiniz? Launcher'ın 10.11 revizyonundan mı yoksa başka bir "önceki versiyondan" mı bahsediyorsunuz?
bmike

17

Bunu yapmanın en kolay yolu

sudo launchctl list | grep "rough name of what you want to find"
sudo launchctl remove "label.of.the.file"

Teşekkürler, tam olarak istediğim buydu. Dosyayı sildikten sonra hizmet nasıl silinir!
chmac

2

Bu konumları kontrol etmeyi deneyin:

/ Kullanıcılar / kullanıcı adınız / Kütüphane / LaunchAgents /

/ Library / LaunchAgents /

/ Library / LaunchDaemons /

/ System / Library / LaunchAgents /

/ System / Library / LaunchDaemons /


1

Bir "launchctl dumpstate" yapabilirsiniz ve yüklü tüm hizmetleri ve başlangıç ​​.plist ve içerik yolunu gösterecektir.

Muhtemelen çok fazla bilgi döktüğü için daha az gibi bir şeyle çalıştırmak isteyeceksiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.