C++实现将Nginx设置成服务并开机自启动
这篇博文对Windows安装nginx服务做了详细的说明:
https://www.cnblogs.com/zhi-leaf/p/6274290.html
每次进行手动设置不是很方便,于是通过代码来实现将Nginx设置成服务并开机自启动。
核心代码逻辑:
//启动服务filedir:nginx文件夹路径
bool CHttpServices::StartHttpService(unsigned int &httpport, CString httpdir, CString filedir,bool &bUpdataPort)
{
bool bStart = false;
//检查服务是否已安装
if (IsNginxServiceInstalled(_T("Nginx-Service")) == false)
{
//未安装
bUpdataPort = true;
//检查http端口是否被占用
httpport = GetHttpPort(httpport);
//更新nginx-service.xml
UpdataNginxServiceXML(filedir);
//更新nginx.conf
UpdataNginxConf(filedir, httpport, httpdir);
//安装服务并启动
if (InstallNginxService(_T("Nginx-Service"), (LPWSTR)(LPCTSTR)(filedir + L"\\nginx-service.exe")))
{
//服务安装成功!
bStart = true;
AddFirewall(filedir);//添加防火墙例外
}
else
{
//服务安装失败!
bStart = false;
}
}
else
{
//已安装
//检查服务是否正在运行
if (IsNginxServiceRunning(_T("Nginx-Service")) == true)
{
//正在运行
bStart = true;
}
else
{
//已停止
if (StartNginxService(_T("Nginx-Service")) == true)
{
//启动成功
bStart = true;
}
else
{
//启动失败
bStart = false;
}
}
}
return bStart;
}
完整代码地址:
https://download.youkuaiyun.com/download/xhlzjd/12366396