我有一个 .NET windows 服务,它应该在每天 7:00 开始并在 23:00 停止,在后台连续运行。
虽然我可以对服务进行编码,使其在 23 到 7 点之间休眠,但我更喜欢系统配置(类似于unix 中的cron)。
如何在 Windows 7 上执行此操作?
请注意,如果系统在 7:00 之后启动,该服务应立即启动。
我有一个 .NET windows 服务,它应该在每天 7:00 开始并在 23:00 停止,在后台连续运行。
虽然我可以对服务进行编码,使其在 23 到 7 点之间休眠,但我更喜欢系统配置(类似于unix 中的cron)。
如何在 Windows 7 上执行此操作?
请注意,如果系统在 7:00 之后启动,该服务应立即启动。
1- 创建一个批处理文件,例如 starter.bat 并输入 NET START "SERVICE NAME"
2-在早上 7:00 在任务计划程序中创建一个任务,每天运行批处理文件,并记住在设置选项卡中错过计划启动后尽快检查运行任务,这样即使系统在早上 7 点之后启动它也会启动
对 stoper.bat 重复这些步骤,包括 NET STOP "SERVICE NAME" for 23:00 pm
您可以为此任务或计划任务使用Windows 任务调度程序。
Windows AT 命令也与 Unix 中的 Cron 非常相似
“AT 命令计划命令和程序在指定时间和日期在计算机上运行。计划服务必须运行才能使用 AT 命令。”
Seeing as you need another service to manage the scheduling of the services. Write a service, that hosts service like thingies. The host deals with starting and stopping, even restarting in the event of a crash. You can even get clever and get it to look up with "services" to load an run, and applet to see what's going on and tweak the schedule , register and unregister services with the host.
An approach anyway.
或者您可以编写另一个服务,让我们称它为守护程序,它始终运行并根据配置文件启动其他服务。
AT 命令在某些时候被弃用。这适用于服务器 2012 Windows 10。
schtasks /create /tn "StartWrapper" /tr "NET START '服务名称'" /sc daily /st 23:05 /RL HIGHEST
您必须使用引号才能正确转义命令。