【问题标题】:Start powershell job to run process that stays open in the background启动 powershell 作业以运行在后台保持打开的进程
【发布时间】:2015-04-04 08:49:11
【问题描述】:

请注意,虽然这篇文章询问的是 coffeescript.cmd,但我认为答案与它没有任何关系,但更多的是因为我误解了 powershell 的工作系统。


所以要编译和观看coffeescript,我可以调用

> coffee.cmd -cw ./scripts

这将启动咖啡脚本进程。由于w watch 标志,进程将保持打开状态并重新编译任何更改,直到我 Ctrl+c

我想要启动这个过程,但让它在后台运行,这样我就可以继续使用我的控制台(是的,我知道我可以有多个控制台)。理想情况下,该作业的任何输出都会在发生时被推送到我的控制台。

所以我认为我可以做到这一点

> start-job { coffee.cmd -cw .\scripts }
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost             coffee.cmd -cw .\scripts

不幸的是,a) 吞下所有输出,更重要的是 b) 立即完成,而不是一直盯着我的目录

W:\surge\ogre> 找工作

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Completed     False           localhost             coffee.cmd -cw .\scripts

请注意,我知道 this post,但正如我所证明的那样,即使我 Recieve-Job,我似乎也无法让工作保持开放。

发生了什么事?工作不是解决这个问题的正确工具吗?启动在后台等待的进程的正确方法是什么?如何将输出从它重定向到我的控制台。

【问题讨论】:

  • 什么版本的 Powershell?
  • @Eris 4.0 就我而言。我想Start-Job是在3中才引入的吧?
  • 可能找不到coffee.cmd。如果您在开始工作后执行Get-Job|Receive-Job,您将一无所获?
  • @MickyBalladelli start-job { Get-Command coffee.cmd } | receive-job -Wait 工作
  • Powershell 3 引入了分离会话,当父会话关闭时,Powershell 2 会终止所有后台作业。

标签: powershell


【解决方案1】:

感谢@MickyBalladelli 的评论,我已经设法弄清楚了其中的一部分。即这个

start-job { Get-Location } | Receive-Job -Wait

返回 ~/Documents。啊哈!所以相对路径不起作用。当我这样做时

Start-Job { coffee.cmd -cw w:\absoltue\path\to\scripts }

作业确实保持运行,并将在后台编译内容。当然,结果(编译成功和错误)不会流式传输到我的控制台。为此,我需要显式调用Get-Job | Receive-Job

这很烦人,但离我真正想要的更近了一步。

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2019-02-01
    • 2021-09-27
    • 2011-12-02
    相关资源
    最近更新 更多