我正在尝试获取一个 PHP 脚本来执行一个打开应用程序的 Applescript。*
PHP 在用户下运行_www
。能使用命令执行 Applescript osascript
,它无法运行我的 Applescript 程序,因为_www
没有桌面环境。
所以我想:我只需要sudo
在我的用户。我曾经visudo
添加一个条目_www
,允许它在没有密码的情况下运行我的脚本(sudo -u myUser ...
)。这很有效!sudo
将用户切换到我,并顺利运行了大多数命令。只是我仍然没有桌面环境!我可以运行仅 shell 命令;whoami
返回我的用户名,而不是_www
。但 AppleScript 无法工作。我切换了用户,但还没有切换到桌面环境。
所以,我的问题是:有没有办法让 PHP 在另一个用户的桌面环境中执行程序?我怀疑不是...
作为替代方案,我认为我可以在 PHP 程序(以 身份运行_www
)和另一个以我的用户身份运行的程序之间建立本地套接字链接。后者程序将监听套接字,直到 PHP 发送消息。如果上述方法不起作用,也许我会这样做。
*为了完全透明,我实际上想做的是:我想给自己发一条 iMessage。苹果就是苹果,仅有的以编程方式发送 iMessages 的方法是通过 AppleScript 编写信息应用。虽然麻烦,但确实有效。
如果以上任何一项都无法实现,我只会使用 SMS 而忘记 iMessage。