在linux中你可以使用命令 &在后台运行命令,在shell离线后也会继续.我想知道是否有类似于Windows的东西......
Oes*_*ste 39
我相信你要找的命令是 start /b *command*
对于unix,nohup表示'no hangup',这与后台作业略有不同(可能是*command* &.我相信上面的命令应该类似于windows的后台作业.
dre*_*w_w 14
我假设您要做的是运行没有接口的命令(可能是自动的?).在Windows上有许多选项供您查找:
最好:将您的程序编写为Windows服务.这些将在没有人登录服务器时启动.它们允许您选择用户帐户(可能与您自己的帐户不同),如果失败则会重新启动.它们始终运行,因此您可以在特定时间或在其中定期自动执行任务.有关如何编写Windows服务的更多信息,您可以在线阅读教程,如(http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx).
更好:启动命令并隐藏窗口.假设该命令是DOS命令,您可以使用VB或C#脚本.有关更多信息,请参见此处 一个例子是:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("C:\yourbatch.bat"), 0, True
Run Code Online (Sandbox Code Playgroud)
您仍然需要手动启动命令或编写任务以启动命令.这是该策略中最大的下跌之一.
希望有所帮助!
使用start带有/b标志的命令可以在不打开新窗口的情况下运行命令/应用程序。例如,这dotnet run在后台运行:
start /b dotnet run
Run Code Online (Sandbox Code Playgroud)
您也可以将参数传递给命令/应用程序。例如,我开始这个C#项目的3个实例,用的参数值x,y以及z:
CTRL + BREAK根据我的经验,这会停止您在该cmd实例中启动的所有后台命令/程序。
根据微软文档:
除非应用程序启用 CTRL+C 处理,否则将忽略 CTRL+C 处理。使用 CTRL+BREAK 中断应用程序。
您还应该查看atWindows 中的命令。它将在后台的某个时间启动一个程序,该程序在本例中有效。
另一种选择是使用nssm服务管理器软件。这将包装您作为 Windows 服务运行的任何命令。
更新:
nssm不太好。您应该查看 WinSW 项目。https://github.com/kohsuke/winsw
令人难以想象的是,十年后 Windows 仍然没有一个像样的方式在后台运行命令。
start /B command是给出最多的答案,但是当终端关闭时该命令将被关闭。
现在,Windows 10 有一个内置的(不过你必须手动安装)ssh 服务器。你可以跑
ssh username@localhost "my_backgroud_command --params"
Run Code Online (Sandbox Code Playgroud)
然后CTRL C,关闭终端,命令将继续在后台运行。
这是迄今为止我发现的最体面的方法。虽然不够体面,因为你必须先安装和配置 ssh 服务器。
| 归档时间: |
|
| 查看次数: |
77818 次 |
| 最近记录: |