精华内容
下载资源
问答
  • C++创建Windows系统服务

    万次阅读 2018-06-01 16:45:53
    定义 Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。...

    定义

        Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

    相关API

    OpenSCManager():打开服务控制管理器。

    CreateService():创建系统服务。

    OpenService():打开服务。

    StartService():启动服务。

    StopService():停止服务。

    ControlService():控制服务。

    SetServiceStatus():设置服务状态。

    代码实例

    #include <Windows.h>
    
    
    //获取当前exe程序所在路径
    char *GetExeFullPath()
    {
    	char *path = new char[1024];
    	memset(path, 0, 1024);
    
    	if (GetModuleFileName(NULL, path, 1024) != 0)
    	{
    		return NULL;
    	}
    	return path;
    }
    
    
    //测试创建、启动系统服务
    bool TestStartService()
    {
    	//打开服务控制管理器
    	SC_HANDLE hScm = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
    	if (hScm == NULL)
    	{
    		return false;
    	}
    	//创建系统服务,参数很多,可查看帮助文档
    	SC_HANDLE hService = CreateService(hScm, "MySerivce", "MyService", SERVICE_ALL_ACCESS,
    		SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, GetExeFullPath(), 
    		NULL, NULL, "", NULL, "");
    	if (hService == NULL)
    	{
    		return false;
    	}
    	//启动系统服务
    	if (StartService(hService, 0, NULL) == false)
    	{
    		return false;
    	}
    	//释放句柄
    	CloseServiceHandle(hScm);
    	CloseServiceHandle(hService);
    	return true;
    }
    
    
    //测试停止、卸载系统服务
    bool TestStopService()
    {
    	//获取系统服务控制管理器句柄
    	SC_HANDLE hScm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
    	if (hScm == NULL)
    	{
    		return false;
    	}
    	//打开系统服务,获取服务句柄
    	SC_HANDLE hService = OpenService(hScm, "MyService", SERVICE_ALL_ACCESS);
    	if (hService == NULL)
    	{
    		return false;
    	}
    	//查询该系统服务是否正在运行,若在运行中则停止该服务
    	SERVICE_STATUS status;
    	QueryServiceStatus(hService, &status);
    	if (status.dwCurrentState == SERVICE_RUNNING)
    	{
    		ControlService(hService, SERVICE_CONTROL_STOP, &status);
    		//如果出错,则返回false
    		if (status.dwCurrentState != NO_ERROR)
    		{
    			return false;
    		}
    	}
    	//如果服务状态为已停止,则卸载该系统服务
    	if (status.dwCurrentState == SERVICE_STOPPED)
    	{
    		DeleteService(hService);
    	}
    	//释放句柄
    	CloseServiceHandle(hScm);
    	CloseServiceHandle(hService);
    }
    
    
    int main()
    {
    	TestStartService();
    	//TestStopService();
    	
    	return 0;
    }
    该程序主要实现了系统服务的创建、启动、停止、卸载等功能。
    成功创建系统服务后,可以打开Windows系统中的SCM(服务控制管理器)进行查看。按住Ctrl+R打开运行窗口->输入“services.msc”打开服务窗口->在右侧服务列表中查找MyService名称的系统服务。


    展开全文
  • 我用 mysqld 启动 mysql 的服务后,在系统服务”中查不到mysql服务呢?首先声明,我的服务启动成功了,因为我可以另开一个 cmd 窗口进行mysql登录,登录后可以进行各种操作。但是不解的是,我在系统的管理工具...

    我用 mysqld 启动 mysql 的服务后,在系统“服务”中查不到mysql服务呢?
    首先声明,我的服务启动成功了,因为我可以另开一个 cmd 窗口进行mysql登录,登录后可以进行各种操作。
    但是不解的是,我在系统的管理工具“服务”中,竟然查不到“mysql服务”这一项。
    查看window7服务的2种方法:

             1) window7下的系统管理工具在 --- 控制面板\系统和安全\管理工具---服务

             2) 运行 中输入 services.msc 即可查看所有的服务

    我们也可以用mysqladmin -uroot -p shutdown关闭这个服务,我可以正常关闭

    但是如果我用net stop mysql来关闭服务的话,会提示,则不能关闭mysql服务

    那么我的解决办法是:(注意:一下操作都是在 以管理员身份 运行 命令提示符 的前提下,

                      开始---命令提示符--右键---以管理员的身份运行(A),这样就以管理员的身份打开的 命令提示符)

                      1)打开dos窗口,进入mysql的bin目录下(注意:一定要以管理员的身份打开 命令提示符,因为这些操作 只有 管理员 才能进行)

                      2)执行mysqld --install  Mysql5.6 ,执行成功会提示Service  Successfully Installed

         但是如果你不是以管理员的身份打开 命令提示符,那么执行上述命令时就会提示:Install/Remove of  the service denied!(服务安装被拒绝)

                      3)那么你就可以在windows的服务中看到Mysql5.6这个服务了

    二)

                    1) mysqld --remove mysql5.6  从windows的服务中删除mysql服务

                    2) net start mysql5.6 打开mysql服务

                    3) net stop mysql5.6 关闭mysql服务

                    4) mysqld --install-manual  上面的这个命令是装好的服务会在你开机的时候自动启动,如果你想将服务改为手动的就,就运行下面这个命令

    展开全文
  • 将elasticsearch设置为windows系统服务

    万次阅读 2017-03-31 11:59:56
    其实我们也可以将elasticsearch设置为windows系统服务: elasticsearch的bin目录下有一个elasticsearch-service.bat 进入bin目录下执行:

    目前我都是在windows的环境下操作是Elasticsearch,并且喜欢使用命令行
    启动时通过cmd直接在elasticsearch的bin目录下执行elasticsearch
    这样直接启动的话集群名称会默认为elasticsearch,节点名称会随机生成。
    停止就直接在cmd界面按Ctrl+C
    其实我们也可以将elasticsearch设置为windows系统服务:
    elasticsearch的bin目录下有一个elasticsearch-service.bat
    进入bin目录下执行:

    elasticsearch-service.bat install

    这里写图片描述
    然后在系统服务中可以看到Elasticsearch已成为系统服务。
    这里写图片描述
    elasticsearch-service.bat后面还可以执行这些命令
    install: 安装Elasticsearch服务
    remove: 删除已安装的Elasticsearch服务(如果启动则停止服务)
    start: 启动Elasticsearch服务(如果已安装)
    stop: 停止服务(如果启动)
    manager:启动GUI来管理已安装的服务

    展开全文
  • CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,...

    CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。


    下面我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl。


    前提:Node.js环境已配置成功,forever包安装成功,有一个能跑的Node.js程序。


    CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下

    每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行Node.js项目,具体内容如下:

    [Unit]
    Description=xiyoulibapi
    After=network.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    PIDFile=/node.js/pid
    ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
    ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
    ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
    PrivateTmp=true
     
    [Install]
    WantedBy=multi-user.target
    

    [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

    [Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

    [Install]部分是服务安装的相关设置,可设置为多用户的


    服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行配置了

    首先,使用systemctl start [服务名(也是文件名)]可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [服务名(也是文件名)]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。

    接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。


    我的脚本编写方法参照了nginx的编写方法,也可以根据其他功能类似的程序。


    这样看来,虽然systemctl比较陌生,但是其实比init.d那种方式简单不少,而且使用简单,systemctl能简化的操作还有很多,现在也有不少的资料,看来RHEL/CentOS比其他的Linux发行版还是比较先进的,此次更新也终于舍弃了Linux 2.6内核,无论是速度还是稳定性都提升不少。


    转载请注明出处:http://blog.csdn.net/yuanguozhengjust/article/details/38019923

    展开全文
  • 将bat文件注册成为系统服务

    万次阅读 2014-12-13 11:29:16
    第一章 注册系统服务准备 1.1 注册系统服务前准备 1.1.1 涉及第三方软件 Ø Bat_To_Exe_Converter.exe (将*.bat文件转化为可执行*.exe文件) Ø instsrv.exe (微软自带注册系统服务软件) Ø srvany....
  • CentOS 6.5系统服务详解

    千次阅读 2015-01-01 10:31:04
    CentOS 6.x的系统服务比5.x系列的要多了很多新面孔,,因为开启不必要的服务越多,系统就相对越不安全。不需开启的服务尽量关闭。  1、下面列表是在CentOS 6.x最小化桌面环境安装下显示出来的系统服务,其中红色...
  • 为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架裡接近Linux/Driver 的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java 应用程序來使用Driver/HW Device 特色的重要管道。于此,先...
  • 用命令把应用程序添加到系统服务 使用SC命令将程序加入系统服务。 加入服务格式如下: sc create ServiceName binPath= 程序路径 start= auto (等号后面的空格必须) 删除服务格式如下: sc delete Service...
  • 恢复WIN7系统默认服务(在某个服务不能使用时)

    千次下载 热门讨论 2010-08-15 15:00:26
    恢复WIN7系统默认服务(在某个服务不能使用时) 恢复WIN7系统默认服务(在某个服务不能使用时) 恢复WIN7系统默认服务(在某个服务不能使用时) 恢复WIN7系统默认服务(在某个服务不能使用时) 恢复WIN7系统默认服务(在某个...
  • 一个redis注册服务后一般是网络服务账户,但是当系统不存在网络服务账户时,就会导致redis服务无法正常启动。接下来修改redis服务的登录身份。 cmd下输入如下命令:sc config Redis obj= LocalSystem 修改为本地...
  • Windows 10系统下哪些服务可以关闭?

    万次阅读 2019-02-25 12:15:06
    Windows 10系统下哪些服务可以关闭? Windows 10系统中很多服务和进程其实大家在平时都用不上,这些服务和进程不仅占用了很大部分的资源,而且还会影响系统的运行速度和安全。我们可以关闭那些不常用的服务和进程...
  • 1,使用root用户 2,查看linux系统下所有的服务,使用命令...4,停止一个服务,(系统重启后,该配置不生效)如停止ntpd服务,使用命令:service ntpd stop 5,启动一个服务,(系统重启后,该配置不生效)
  • AIX上如何启动和停止系统服务

    万次阅读 2012-08-07 22:59:39
    在 AIX 上,服务也可以称为子系统(Subsystem),它是受控于系统资源控制器(System Resource Controller,SRC)的。SRC 提供了一套命令来控制整个 AIX 系统的子系统,所以,启动和停止相关的服务(子系统)也是要...
  • 这种情况,一般开机后,本地系统的CPU占用...1. 找到任务管理器中的“ 服务主机:本地系统”->“Windows Update”,右键,进入“服务” 2. 在服务列表中找到“Windows Update”,右键,停止 3. 在服务列表中找到“Win
  • Linux 系统启动与服务管理

    万次阅读 2021-08-13 18:09:50
    3.4 systemd 单元类型 单元类型 扩展名 说明 Service .service 描述一个系统服务 Socket .socket 描述一个进程间通信的套接字 Device .device 描述一个内核识别的设备文件 Mount .mount 描述一个文件系统的挂载点 ...
  • C++socket网络编程大全实战http服务器(支持php)视频培训教程概况:本课程会同时演示在linux和windows中的编程,课程中的线程和正则表达式都使用c++提供库。本课程包含了socket网络编程常用的所有特性,包括tcp、udp...
  • 如何将TOMCAT注册成系统服务

    万次阅读 2013-08-22 11:54:30
    将TOMCAT注册成系统服务的好处,就是方便维护,在服务器重启的时候,系统会自动启动系统服务,而不必手动操作,这就为我们在项目维护时省下不少麻烦。 在项目维护期间有很多客户只要一有问题,就电话招呼,而且是一...
  • 开启win10下Ubuntu子系统的SSH服务

    万次阅读 多人点赞 2018-07-17 20:23:21
    Win10中安装Ubuntu子系统后默认是没有开启SSH服务的,需要手动配置开启, 如何安装win10的linux子系统可以参考这篇文章:https://blog.csdn.net/zhouzme/article/details/78780479 先通过 bash 进入子系统修改...
  • 分布式文件系统元数据服务模型

    万次阅读 多人点赞 2011-09-05 12:05:38
    随着非结构化数据的爆炸,分布式文件系统进入了发展的黄金时期,...对于大多数分布式文件系统(或集群文件系统,或并行文件系统)而言,通常将元数据与数据两者独立开来,即控制流与数据流进行分离,从而获得更高的系统
  • Android后台开启服务默默拍照

    千次下载 热门讨论 2013-07-07 11:23:17
    Android后台开启服务默默拍照http://blog.csdn.net/yangzl2008/article/details/9262505
  • Android系统架构概述PPT

    千次下载 热门讨论 2013-10-23 01:18:24
    应用程序框架层主要包括系统服务,例如组件管理服务、应用程序安装服务、窗口管理服务、多媒体服务和电信服务等。应用程序框架进一步又分为C/C++和Java两个层次,Java代码运行Dalvik虚拟机之上,并且通过JNI方法和C/...
  • 今天写一下这个隐藏在我电脑中已经一年多的病毒。我是去年在一次文件整理的...可是几天之后,电脑突然死机呢,打开其余的软件总是提示“系统资源不足,无法完成你的请求的服务”的错误信号,如下图所示。  哪怕...
  • 在本文中,我们将讨论如何将Linux系统中一些不必要的应用程序和服务禁用,以保护你的系统资源。首先让我们来看看系统中正在运行哪些服务。使用以下命令:输出结果现在让我们使用下面的netstat命令快速浏览接受连接的...
  • 排队论及排队系统优化

    万次阅读 多人点赞 2017-08-14 23:29:25
    排队现象与排队系统; 排队模型与系统参数; 排队系统时间参数分布规律; 排队系统的生灭过程与状态转移方程; 排队系统分析; 单服务台负指数分布模型 多服务台负指数分布模型 排队系统优化分析;排队论发源于上世纪初。...
  • 企业邮件服务器系统

    千人学习 2017-03-03 16:16:11
    让每个人都能熟练企业实战的Linux平台邮件系统
  • 如何在windows系统中添加服务

    万次阅读 2010-08-07 12:50:00
    朋友的桌面版本MSSQL SERVER安装在XP上,却没有注册成服务的形式,每次启动数据库都要到SQL SERVER目录,并挂起命令行方式启动,对于一个对系统不太熟悉的人来说是一件很苦恼的事情。所以打算给他解决这个问题,方式...
  • Git 实用技巧

    千人学习 2019-11-24 18:20:42
    这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先...
  • 使用net命令启动MongoDB服务发生系统错误,返回值为5 错误的截图如下: 解决的方案是以管理员的身份运行命令窗口,到C:\Windows\System32找到cmd.exe然后以管理员的身份运行。 启动服务,能够正常的启动服务 ...
  • 如果使用了某种激活工具,那么激活系统后,电脑用过一段时间后可能会出现“系统资源不足,无法满足请求服务”这种情况。无法点击运行其他应用程序。 解决此问题,一般有以下两种方法: 1、修改注册表; 2、利用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,300,541
精华内容 1,720,216
关键字:

系统服务