【问题标题】:How do I luanch an external application from Ruby and wait for the user to close it如何从 Ruby 启动外部应用程序并等待用户关闭它
【发布时间】:2021-02-04 08:26:39
【问题描述】:

在执行 Ruby 脚本期间,我想打开一个外部应用程序(特别是 Macos 上的 Visual Studio Code)并等待用户关闭它创建的窗口,然后再继续执行。

目前我正在以这种方式使用Process.spawn

cmd = "/usr/local/bin/code #{path_to_file}"
pid = Process.spawn cmd

/usr/local/bin/code 是应用程序文件夹中实际二进制文件的链接)

当然这不起作用,因为命令会立即返回。

Visual Studio Code 有一个额外的复杂性,它可以使用这个命令启动一个单独的窗口,我想等待用户只关闭那个特定的窗口。

【问题讨论】:

    标签: ruby visual-studio-code spawn


    【解决方案1】:

    您可以使用Process.waitpid

    cmd = "/usr/local/bin/code #{path_to_file}"
    pid = Process.spawn cmd
    Process.waitpid(pid, 0)
    

    https://ruby-doc.org/core-1.9.3/Process.html#method-c-waitpid2

    【讨论】:

    • Process.spawn 立即退出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多