Launchctl - отправить команду вместо исполняемого файла

663
Zocker3333

Я знаю, что можно указать путь запуска программы через

launchctl submit -l метка [-p исполняемый файл] [-o путь] [-e путь] - команда [аргументы]

Но возможно ли передать команду вместо программы? Так, скажем, make launchd execute "command" в "path"?

0
И какую именно «команду» вы могли бы иметь в виду? Если это встроенная оболочка, оболочка должна быть запущена. Если необходимо запустить оболочку, вы можете просто использовать сценарий оболочки. Daniel B 8 лет назад 0
@DanielB Я создаю программу, которая будет использовать любую команду, которую пользователь хочет выполнить при запуске, создание сценария оболочки для него кажется довольно сложным решением Zocker3333 8 лет назад 0
Я не понимаю Пожалуйста, предоставьте полный пример использования «программы» и еще один пример использования «команды». Daniel B 8 лет назад 0
@DanielB Итак, моя программа будет иметь API, затем вы сможете вызвать мою программу с возможностью отключить или включить элемент автозагрузки, и если вы хотите включить один из них, вы предоставите команду, которая должна быть выполнена при запуске. , Итак, в основном, моя программа получает команду, а затем она должна получить эту команду для запуска, чтобы она запускалась при запуске. Примером команды может быть «npm start». Итак, если кто-то вызывает «./myprogram --enable --command« npm start », моей программе нужно запустить« npm start ». Edit: Очевидно, также с его путем, это всего лишь пример Zocker3333 8 лет назад 0

1 ответ на вопрос

1
Zocker3333

Okay, turns out it's actually really easy, I just couldn't read the synopsis of the command. To create a launchd service to fire, for example, "mkdir /usr/local/test", you just need to submit a service like this:

launchctl submit -l my-startup-program mkdir /usr/local/test 

And you can remove it like this:

launchctl remove my-startup-program