在 Mavericks 上,这很好用...[用您想要的任何长时间运行的进程替换“sleep 30”。]
prompt% osascript -e 'do shell script "sleep 30 >/dev/null 2>&1 &"'
但这实际上并没有进入后台;它等待了整整 30 秒:
prompt% osascript -e 'do shell script "sleep 30 >/dev/null 2>&1 &" with administrator privileges'
在 Mavericks 之前它工作得很好...有人知道如何让“do shell script”立即返回,而不等待其后代进程完成吗?
PS – 我什至尝试过以下方法:
prompt% cat /tmp/sleep.sh
#!/bin/sh
(sleep 30 >/dev/null 2>&1 &)
prompt% osascript -e 'do shell script "sh /tmp/sleep.sh" with administrator privileges'
即,创建一个完全拒绝 sleep 进程的 shell 脚本...没有骰子。我还认为也许使用 setpgrp() 将进程组更改为其他内容(通过 Perl 包装器)可能会有所帮助...... Nada。 :-(
最佳答案
尝试:
do shell script "sleep 30 &>/dev/null &"
关于macos - Applescript "do shell script with administrator privileges"在后台挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543770/