在Windows 7上的PowerShell中运行后台进程(尤其是rails)

时间:2011-05-22 10:09:58

标签: ruby-on-rails windows-7 powershell powershell-v2.0

如何在Windows 7上的PowerShell中运行后台进程?这里的答案是:Powershell equivalent of bash ampersand (&) for forking/running background processes引用似乎不再存在的* -psjob命令。

我通过谷歌发现另一个参考文献,psjob缺失,但没有解决方案。

编辑:显然该解决方案涉及一个名为start-job的命令。

不幸的是,不清楚如何运行带参数的程序。我正在尝试运行“rails server”。当我在提示符下键入rails server时,rails运行得很好,但它会阻止我的shell。我尝试了各种使用server参数调用rails的方法,例如:

start-job -scriptblock {rails server}
start-job -scriptblock {"rails server"}
start-job -scriptblock {rails "server"}
start-job -scriptblock {rails} -argumentlist server
start-job -scriptblock {rails} -argumentlist "server"
start-job -scriptblock {rails $args[0]} -argumentlist server
start-job -scriptblock {rails $args[1]} -argumentlist server
start-job -scriptblock {rails $args[0]} -argumentlist @("server")

一切都无济于事

5 个答案:

答案 0 :(得分:2)

试试这个

Start-Job -scriptblock { param($p) rails $p } -ArgumentList "server"

答案 1 :(得分:2)

随机猜测:尝试完全限定rails.exe的路径。

答案 2 :(得分:1)

您是否尝试过使用New-PSSession cmdlet?这允许您使用PowerShell远程处理在新的后台会话下运行命令,即使在本地计算机上也是如此。

$ Session = New-PSSession localhost

Invoke-Command -Session $ Session -ScriptBlock {Rails Server}

欲了解更多信息:

帮助about_remote *

答案 3 :(得分:1)

它不是很优雅,但您可以随时制作批处理文件并调用它。我这样做是为了从PowerShell调用curl。

答案 4 :(得分:0)

查看powershell - passing parameters to exe

中的功能

函数Call会让您感兴趣。