В чем разница между `service-name` и` service-target`?

27

Рассмотрим следующие команды

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

В чем разница между целью службы и именем службы? Как я могу узнать цель службы для ее имени службы?

cheezsteak
источник

Ответы:

29

Цель службы - это имя службы плюс целевой домен, который описывает контекст, в котором работает служба, например, запускается ли она при запуске системы или когда конкретный пользователь входит в систему и т. Д.

Страница руководства launchctl (1) описывает 6 способов формирования цели службы из имени службы. Если вы хотите отключить службу, которая запускается при запуске, вы, вероятно, захотите одну из этих трех в зависимости от того, работает ли она при запуске системы или при входе в систему:

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.

Вы можете узнать номер uid для своей учетной записи, например:

$ id -u [your-username]
502
sengi
источник
25
Есть ли способ перейти от отображаемой метки службы или PID launchchtl listк цели-цели, не пытаясь использовать все эти возможные домены?
Водоросль