Estou tentando obter um script PHP para executar um Applescript que abre um aplicativo. *
O PHP está sendo executado sob o usuário _www
. E enquanto pode executar Applescripts com o comando osascript
, ele não pode executar meu programa Applescript, porque _www
não possui ambiente de área de trabalho .
Então, pensei: só usarei sudo
para executar o AppleScript em meu usuário. Eu usei visudo
para adicionar uma entrada para _www
, o que permitiria executar meu script sem uma senha ( sudo -u myUser ...
). Isso funcionou muito bem! sudo
mudou o usuário para mim e executou a maioria dos comandos sem problemas. Exceto que ainda não tenho um ambiente de desktop! Eu poderia executar comandos somente de shell; whoami
retornou meu nome de usuário, não _www
. Mas o AppleScript não funcionou. Eu troquei o usuário, mas não mudei para um ambiente de desktop.
Então, minha pergunta: existe uma maneira que o PHP pode executar programas no ambiente de desktop de outro usuário? Eu suspeito que não ...
Como alternativa, achei que poderia estabelecer um link de soquete local entre meu programa PHP (em execução como _www
) e outro programa em execução sob meu usuário. O último programa escutará no socket até o PHP enviar uma mensagem. Talvez eu faça isso se o acima não funcionar.
* No interesse de total transparência, o que estou realmente tentando fazer: Eu quero enviar um iMessage para mim mesmo. Apple sendo a Apple, a única maneira de enviar programaticamente iMessages é através do aplicativo Messages do AppleScript. Sujo, mas funciona.
Se não houver maneira de fazer um dos itens acima , vou usar o SMS e esquecer o iMessage.
Tags bash php macos applescript