Apa perbedaan antara `nama-layanan` dan` target-layanan`?

27

Pertimbangkan perintah berikut

# launchctl stop 
Usage: launchctl stop <service-name>
# launchctl stop com.apple.SomeService
# launchctl disable com.apple.SomeService
Usage: launchctl disable <service-target>

Apa perbedaan antara target layanan dan nama layanan? Bagaimana saya bisa belajar target layanan dari layanan dari nama layanan itu?

cheezsteak
sumber

Jawaban:

29

Target layanan adalah nama layanan plus domain target, yang menggambarkan konteks di mana layanan berjalan, misalnya apakah berjalan pada startup sistem atau ketika pengguna tertentu login dll.

Halaman launchctl (1) menjelaskan 6 cara untuk membentuk target layanan dari nama layanan. Jika Anda ingin menonaktifkan layanan yang berjalan saat startup, Anda mungkin menginginkan salah satu dari ketiganya tergantung pada apakah itu layanan yang berjalan saat startup sistem atau ketika Anda login:

system/[service-name]
    Targets the system domain or a service within the system domain. The system
    domain manages the root Mach bootstrap and is considered a privileged execu-
    tion context. Anyone may read or query the system domain, but root privi-
    leges are required to make modifications.

user/<uid>/[service-name]
    Targets the user domain for the given UID or a service within that domain. A
    user domain may exist independently of a logged-in user. User domains do not
    exist on iOS.

gui/<uid>/[service-name]
    Another form of the login specifier. Rather than specifying a user-login
    domain by its ASID, this specifier targets the domain based on which user it
    is associated with and is generally more convenient.

Anda dapat menemukan nomor uid untuk akun pengguna Anda seperti ini:

$ id -u [your-username]
502
sengi
sumber
25
Apakah ada cara untuk beralih dari "label" layanan atau PID yang ditampilkan oleh launchchtl listke "target layanan" tanpa mencoba semua domain yang mungkin ini?
alga