在 Unix 上,我可以轻松地将长时间运行的作业交给at
守护进程,守护进程将使用我的用户凭据在非交互式会话中以较低的优先级执行这些作业,并在完成后通过邮件向我报告命令输出。
Windows 是否有类似的机制可以做到这一点?
具体来说,我经常需要清理一个充满临时文件的目录,这大约需要两个小时cmd /c rmdir /s /q …
。此时我真的很想注销并回家,但由于正在运行的命令附加到我的登录会话,这会中断删除过程。
答案1
我记得使用一个名为 SRVSTART 的小实用程序将一些非服务应用程序转变为服务。在作者页面, 我们读:
启动服务端
摘要。SRVSTART.EXE 是一个 Win32 可执行文件和 DLL,它允许您像运行 Windows NT 服务一样运行命令。它还具有一些功能来增强普通控制台命令的运行(提示输入参数等)。DLL 可以单独用于构建服务,而无需编写任何服务管理代码。
SRVSTART.EXE 以两种模式之一运行。
- 它可用于运行普通命令(可执行程序批处理文件)。在此命令模式下,SRVSTART.EXE 可以提示用户输入命令行参数的值,例如密码。
- 它可用于在 Windows NT 服务(服务模式)环境中运行可执行程序。SRVSTART.EXE 本身将处理与 NT 服务控制管理器 (SCM) 的所有交互。程序无需包含任何服务管理代码。
认为某人写了一篇关于这个小工具的文章不久前,我发现它今天仍然可以使用。