【发布时间】:2021-12-22 23:51:57
【问题描述】:
我正在使用 ssh 连接到 Windows 机器并尝试执行命令以在后台运行。 在 ssh 建立后从终端运行以下命令:
start PowerShell.exe -ExecutionPolicy Unrestricted Invoke-Command -ScriptBlock{"cd C:\Users\myuser\AppData\Roaming\npm\node_modules\myserver\; npm start > log.log 2>&1"}
但我真正需要的是运行以下命令,但它不起作用:
ssh myuser@machine_ip "start PowerShell.exe -ExecutionPolicy Unrestricted Invoke-Command -ScriptBlock{\"cd C:\Users\myuser\AppData\Roaming\npm\node_modules\myserver\; npm start > log.log 2>&1\"}"
在没有“开始”的情况下运行第二个命令有效,但它“持有”终端。
如果有人可以告诉如何执行以下命令并使其在后台运行,基本上不必使用 powershell:
cd C:\Users\myuser\AppData\Roaming\npm\node_modules\myserver\; npm start > log.log 2>&1
谢谢
【问题讨论】:
-
查看 Start-Job cmdlet。 docs.microsoft.com/en-us/powershell/module/…
-
为什么要使用invoke-command或powershell?
-
js2010,这根本不是强制性的,但这是我发送命令的方式。我找到了一种使用 'bat' 脚本和 psexec 绕过它的方法,但它也可以堆叠终端,例如:ssh myuser@machineIp psexec myscript.bat -d
-
@js2010 看我上面的评论
-
终于找到了它的工作原理和解决方案-stackoverflow.com/questions/8675847/…
标签: windows powershell npm