我来自 Unix 背景,需要在 Windows Server 2003 上执行此操作。
基本上我有一个从 Windows 启动的命令行进程cmd.exe
。我想实现以下目标:
使此过程在 Windows 启动时默认启动,无需用户登录即可启动它。
有一个桌面图标可以重新启动此后台进程(以防崩溃)。所以
nohup mycommand &
在 *nix 上类似“ ”的东西
答案1
启动时运行
使用以下方法将您的流程转变为 Windows 服务sc 命令.基本语法:
sc create NewServiceName binpath= c:\windows\system32\newserv.exe
请注意 后面的空格binpath=
。创建服务后,您可以将其配置为像其他服务一样自动运行。如果您不清楚这一点,请转到开始菜单并选择Run
。进入services.msc
打开的窗口。这将打开 Microsoft 管理控制台中的服务管理单元。从这里您应该能够找到列出的服务(以及许多其他服务)并使用 GUI 工具将其设置为自动运行。您也可以将此部分作为命令的一部分sc create
,但对于新手来说,可能更容易的是先创建该死的东西,然后使用 GUI 工具按您想要的方式进行设置。
最后需要注意的是,请确保使用具有适当权限的帐户运行此操作。服务或系统帐户最好,但有时您需要其他帐户。
按需重启
一个小的批处理文件(*.bat)就可以达到这个效果:
sc stop NewServiceName
sc start NewServiceName
答案2
答案3
在 2003 Server 上,在 MMC 中打开本地计算机策略管理单元。展开计算机配置-Windows 设置,然后打开脚本(启动/关机)打开启动,然后您可以在那里添加脚本。它应该存储在 sysvol 共享中。
您还可以在桌面上创建此脚本的快捷方式