【问题标题】:Applescript "do shell script with administrator privileges" in Background Hangs后台挂起的Applescript“以管理员权限执行shell脚本”
【发布时间】:2014-04-27 22:27:15
【问题描述】:

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

即,创建一个完全拒绝睡眠过程的 shell 脚本......没有骰子。我还认为,也许使用 setpgrp() 将进程组更改为其他内容(通过 Perl 包装器)可能会有所帮助...... Nada。 :-(

【问题讨论】:

    标签: macos shell applescript admin osx-mavericks


    【解决方案1】:

    试试:

    do shell script "sleep 30 &>/dev/null &"
    

    【讨论】:

    • 在 El Capitan 上为我修复了它。
    【解决方案2】:

    这是 Mavericks 的一个错误,显然是在 10.9.2 中引入的。 (我在 10.9.1 中没有看到它;我有几个严重依赖此功能的应用程序。)请向 Apple 提交 Radar/错误,以确保他们修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 2019-07-03
      相关资源
      最近更新 更多