Не ответ, а обходной путь.
Контекст: у меня есть старый Macbook, который я использую как безголовый Plex-сервер. Я бы хотел, чтобы он всегда был подключен к VPN. Я также хотел бы уведомления, когда он подключается и отключается.
Я закончил тем, что создал приложение обработки событий. Затем я использовал Apple Remote Events, чтобы вызвать его и передать аргументы. После того, как аргументы переданы и обработчик событий запущен, я говорю приложению завершить работу. Это удерживает его от простоя в фоновом режиме. Наконец, я скрыл свое уведомление от дока, отредактировав список. Причина, по которой я создал приложение-обработчик, а не просто использовал Finder для отображения уведомлений, заключается в том, что я хотел иметь настраиваемый значок для своего уведомления.
Код для помощника по уведомлениям (обработчик событий):
on run
idle
end run
on idle argv
try
eHandler(item 1 of argv, item 2 of argv, item 3 of argv)
end try
end idle
on eHandler(message, title, soundName)
set theMessage to message as string
set theTitle to title as string
set theSoundName to the soundName as string
display notification theMessage with title theTitle sound name theSoundName
end eHandler
скрипт ip-down:
#!/bin/sh
# kill applications
killall someApp1
killall someApp2
killall someApp3
killall someApp4
# Open Notification Helper
osascript <<EOF
set remoteMachine to "eppc://{userName}:{password}@{address}"
tell application "Finder" of machine remoteMachine
open ("/Applications/Notification Helper.app" as POSIX file)
end tell
EOF
# Sends Notification Helper arguments
osascript <<EOF
tell application "Notification Helper" of machine "eppc://{userName}:{password}@{address}"
TestHandler("The VPN has been disconnected.", "Media Server", "Pop")
quit
end tell
EOF
# Calls applescript which reconnects my VPN.
# The & Stops script from waiting to end
vpn-connect &
Для тех, кто не знает, ip-down скрипт попадает в каталог /etc /ppp / и запускается при отключении VPN. Вы также можете создать скрипт ip-up, который запускается при подключении к VPN. Мой ip-up просто включает все мои сервисы и затем отправляет мне уведомление, сообщающее мне, что VPN является резервной копией.
Комментарии, предложения приветствуются. Все еще интересно понять, почему это будет работать, поскольку у меня есть другой скрипт, который уведомляет меня, когда x происходит из другой программы через ssh. Также все еще очень заинтересован в pf.conf. Синтаксис для меня очень сбивает с толку.