win系统工具
Windows Service
当Windows 启动的时候,还没有登录账号的时候,此时Windows中设置为auto状态的Service 将会在Session 0中运行。可以按照如下步骤去实现Windows Service:
\1. 如果还没有实现过Windows Service 程序的同学,可以参考这篇文章《Simple Windows Service in C++》去实现。
\2. 通过命令行创建Service, 主要注意start= auto
设置Service为开机启动。
sc create “SERVICE_NAME” binpath= "SERVICE_PROGRAM" displayname= "SERVICE_DESCRIPTION" start= auto
Windows Startup Script
按照如下步骤:
\1. 打开本地的组策略管理,运行命令gpedit
\2. 然后依次打开Computer Configuration
->Windows Settings
->Scripts
-> Startup
, 在Startup中配置需要开机启动的脚本或者程序。
在机器中的配置,我们都尽可能的希望自动化,于是希望通过脚本来完成这个动作。可惜没有CMD 命令可以直接使用这种方法添加启动程序,后来博主搜索了一些方法,有通过直接修改注册表的、也有通过vb脚本去实现的,但这些方法个人觉得还不够直接,简单。
于是博主找到了接下来要说的方法,通过Windows定时任务管理器。
Windows Schedule Task
Windows定时任务管理器,提供了强大的功能:可以定时的执行任务,除了按照时间去触发定时任务,其还提供了开机启动触发程序运行的功能,你可以通过图形界面的方式配置,也可以通过命令方式:
-
依次打开
Control Panel
->Administrative Tools
->Task Scheduler
,然后再里面新建自己的任务。主要注意以下两点:
- 任务运行的账号选成”System”
- 触发器中,选择
At Startup
触发器
-
使用如下命令行:
schtasks /create /TN "TASK_NAME" /RU SYSTEM /SC ONSTART /TR "TASK_PROGRAM"
参数说明:
/create 创建新计划任务
/TN taskname 指定唯一识别这个任务计划的名称
/RU username 指定任务在其下运行的“运行方式”用户帐户(用户上下文)。对于系统帐户,有效值是 ""、"NT AUTHORITY\SYSTEM" 或"SYSTEM"。对于 v2 任务,"NT AUTHORITY\LOCALSERVICE"和"NT AUTHORITY\NETWORKSERVICE"以及常见的 SID对这三个也都可用。
/SC schedule 指定计划频率。有效计划任务: MINUTE、 HOURLY、DAILY、WEEKLY,MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.
/TR taskrun 指定在这个计划运行时间和程序路径向文件名
第三方工具
Instsrv + Srvany
配置方法如下
https://blog.csdn.net/wuyuander/article/details/112751303
https://blog.csdn.net/hellojoy/article/details/53411848
NSSM - the Non-Sucking Service Manager
简介(以nodeJs部署为系统服务为例)
NSSM是一款可将Nodejs项目注册为Windows系统服务的工具。当你的Node.js项目需要部署在Windows Server上时,NSSM是一个不错的选择。
特点
NSSM将Node.js项目注册为服务后,启动、停止、重启皆由windows来管理,所以我们不必担心NSSM无法处理项目因意外的停止,而Windows的服务管理即可处理这些问题。
使用
1.下载NSSM download.
2.根据自己的平台,将32/64位nssm.exe文件解压至任意文件夹。
3.cmd定位至nssm.exe所在目录。
4.输入 nssm install {服务名称}
,即注册服务的名称。注册服务弹出如下NSSM界面。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nl64aZ77-1618201137260)(https://segmentfault.com/img/bV1hvC?w=435&h=234)]
5.Application标签设置:
- Application Path: 选择系统安装的node.exe。
- Startup directory: 选择nodejs项目的根目录。
- Arguments: 输入启动参数,如默认的express项目的参数为
./bin/www
6.上述步骤操作完成,即可点击Install service来注册服务。我们在系统的服务中即可找到刚刚注册的服务。
7.在系统服务中找到刚刚注册的服务,右键属性 - 恢复
即可设置此服务挂掉重启等内容。
nssm常用命令:
nssm install servername //创建servername服务
nssm start servername //启动服务
nssm stop servername //暂停服务
nssm restart servername //重新启动服务
nssm remove servername //删除创建的servername服务