Я установил sshguard с помощью homebrew на моем компьютере с Mac OS X, но теперь хотел бы, чтобы sshguard запускался автоматически при запуске системы.
Я пробовал два подхода. Сначала я попытался создать папку в /Library /StartupItems с именем sshguard и создал стандартный файл StartupParameters.plist вместе с файлом сценария оболочки bash с именем sshguard. Однако, когда я перезагрузил компьютер, sshguard никогда не работал (я использовал ps -ax | grep sshguard
для проверки).
Второй подход заключался в создании файла с именем net.sshguard.sshguard в /Library /LaunchDaemons / со следующим XML:
<?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>KeepAlive</key>
<true/>
<key>Label</key>
<string>net.sshguard.sshguard</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/sshguard</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>matthew</string>
<key>WorkingDirectory</key>
<string>/usr/local/sbin</string>
</dict>
</plist>
Теперь, когда я запускаю launchctl load -w /Library/LaunchDaemons/net.sshguard.sshguard.plist
который появляется, чтобы установить скрипт, все в порядке, так как launchctl list
показывает, что скрипт Daemon установлен. Затем я запускаю launchctl start net.sshguard.sshguard
и все, кажется, работает.
Однако когда я запускаю ps -ax | grep sshguard
Я вижу, что sshguard на самом деле не работает. Я тоже пытался перезагрузиться, и когда я запускаю launchctl list
sshguard нет в списке.
Если я запускаю sshguard в режиме отладки SSHGUARD_DEBUG=true /usr/local/sbin/sshguard
похоже, что он работает нормально.
И я проверил разрешения net.sshguard.sshguard.plist, и они совпадают с другими рабочими файлами, фактически 775.
Может кто-нибудь помочь мне посоветовать, как автоматически запустить sshguard на Mac?
Спасибо Мэтт