Estoy utilizando el software Pritunl VPN para una de las cuentas de usuario de mi Mac. El instalador del software crea un LaunchDaemon del sistema que se encuentra en /Library/LaunchDaemons
llamado com.pritunl.service.plist
Desgraciadamente, este servicio sigue activo cuando cierro la sesión del perfil de usuario al que está destinado, lo que hace que la conexión VPN también permanezca activa para otras cuentas de usuario.
Lo que me gustaría hacer es quitar este servicio del /system/ y añadirlo como servicio de inicio de /user/username. Mi intención es que el servicio se inicie cada vez que inicie la sesión con el usuario específico y que se detenga cada vez que se cierre la sesión del usuario.
Lo que he intentado hacer hasta ahora es descargar el servicio del sistema, eliminar el .plist del directorio del sistema /Library/LaunchDaemons
y para moverlo al directorio del usuario ~/Library/LaunchAgents
después de lo cual intenté cargarlo y registrarlo para la cuenta de usuario específica. Todavía no he conseguido realizar estos pasos correctamente ya que la cuenta de usuario en cuestión no tiene acceso Root.
<?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.pritunl.service</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Pritunl.app/Contents/Resources/pritunl-service</string>
</array>
<key>KeepAlive</key>
<true/>
<key>Umask</key>
<integer>0</integer>
</dict>
</plist>
sudo launchctl list com.pritunl.service
{
"LimitLoadToSessionType" = "System";
"Label" = "com.pritunl.service";
"OnDemand" = false;
"LastExitStatus" = 0;
"PID" = XXXX;
"Program" = "/Applications/Pritunl.app/Contents/Resources/pritunl-service";
"ProgramArguments" = (
"/Applications/Pritunl.app/Contents/Resources/pritunl-service";
);
};
Material de referencia que he utilizado: https://rakhesh.com/mac/MacOS-launchctl-commands/
Al intentar aprender más sobre LimitLoadToSessionType sólo he conseguido encontrar esta documentación antigua archivada. https://developer.apple.com/library/archive/technotes/tn2083/_index.html
Tratando de encontrarlo en la página de documentación actual no ha resultado lo que busco. https://developer.apple.com/search/?q=LimitLoadToSessionType
He encontrado este excelente post que detalla un montón de temas relacionados. lanzada: Confusión en la semántica de bootstrap y bootout etc. después de leer las páginas del manual