macos - Applescript "do shell script with administrator privileges"在后台挂起

标签 macos shell applescript admin osx-mavericks

在 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/

相关文章:

macos - 汇编程序错误 : Mach-O 64 bit does not support absolute 32 bit addresses

python - 检测 osx 何时 sleep /从 sleep 中恢复

linux - 为什么路径中的波浪号没有在 shell 脚本中展开?

C 函数转义 shell 命令参数的字符串?

objective-c - 在 Obj-C 中获取 AppleScript 返回值

iphone - Applescript Xcode 用于在 iPhone 设备上清理、构建和安装

macos - Mountain Lion 的听写应用程序的命令行界面/工具?

macos - Docker for Mac 虚拟机 IP

objective-c - 内联编辑 `NSOutlineView` 的标题

linux - 如何在 bash 脚本中使用文件描述符 3 中的 "read"进行读取?