服务进程
CMD命令中的进程与服务管理技巧

CMD命令中的进程与服务管理技巧CMD命令是Windows操作系统中的一个强大工具,可以通过它来执行各种系统管理任务。
其中,进程与服务的管理是CMD命令中的一个重要功能。
本文将介绍一些CMD命令中的进程与服务管理技巧,帮助读者更好地掌握这一工具。
一、进程管理进程是计算机中正在运行的程序的实例,通过管理进程可以控制计算机的运行状态。
CMD命令提供了一些实用的命令来管理进程。
1. 查看进程:通过tasklist命令可以查看当前正在运行的进程。
在CMD命令行中输入"tasklist",系统将列出所有正在运行的进程的详细信息,包括进程ID、进程名称、内存使用情况等。
2. 结束进程:有时候,某个进程可能会出现异常,导致系统运行缓慢或者崩溃。
此时,可以使用taskkill命令来结束指定的进程。
例如,输入"taskkill /F /IM chrome.exe"可以强制关闭所有名为chrome.exe的进程。
3. 启动进程:CMD命令还可以通过start命令来启动一个新的进程。
例如,输入"start notepad.exe"可以启动记事本程序。
二、服务管理服务是在后台运行的程序,它们提供了系统所需的各种功能。
CMD命令提供了一些命令来管理系统服务。
1. 查看服务:通过sc命令可以查看当前正在运行的服务。
在CMD命令行中输入"sc query",系统将列出所有正在运行的服务的详细信息,包括服务名称、状态、启动类型等。
2. 启动服务:有时候,某个服务可能会停止运行,导致系统功能受限。
此时,可以使用sc命令来启动指定的服务。
例如,输入"sc start Spooler"可以启动打印机服务。
3. 停止服务:有时候,某个服务可能会出现异常,导致系统运行缓慢或者崩溃。
此时,可以使用sc命令来停止指定的服务。
例如,输入"sc stop Spooler"可以停止打印机服务。
Windows可以停止的服务进程

Windows可以停止的效劳进程今天实验室多出来一台电脑,刚好在我的桌上,我就脸皮厚下默认算是给俺分配的了,再也不用每天来回背着笔记本了。
但可能由于是公用的电脑,运行的速度可想而知了,桌面上一堆的文件夹,启动项也是电脑上装的软件开机时都会自动启动一遍,任务管理器也是有很多奇怪的进程。
Windows有很多不重要的效劳进程,这些进程可以停止关闭的,有的进程可能100年也用不到。
在运行里直接输入services.msc命令可以翻开效劳选项,右击相关效劳进程,属性勾选“已禁用〞,即可结束。
超级兔子或优化大师也有效劳查看停止功能。
可以禁用的系统效劳进程(zz)Alerter微软:通知选取的使用者及计算机系统管理警示。
如果停止这个效劳,使用系统管理警示的程序将不会收到通知。
如果停用这个效劳,所有依存于它的效劳将无法启动。
补充:一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrative Alerts),除非你的计算机用在局域网络上依存:Workstation建议:可禁止Application Layer Gateway Service微软:提供因特网联机共享和因特网联机防火墙的第三方通讯协议插件的支持补充:如果你不使用因特网联机共享(ICS) 提供多台计算机的因特网存取和因特网联机防火墙(ICF) 软件你可以关掉依存:Internt Connection Firewall (ICF) / Internet Connection Sharing (ICS)建议:已停用Application Management (应用程序管理)微软:提供指派、发行、以及移除的软件安装效劳。
补充:如上说的软件安装变更的效劳建议:手动Automatic 更新微软:启用重要Windows 更新的下载及安装。
如果停用此效劳,可以手动的从Windows 更新网站上更新操作系统。
补充:允许Windows 于背景自动联机之下,到Microsoft Servers 自动检查和下载更新修补程序建议:已停用ClipBook (剪贴簿)微软:启用剪贴簿检视器以储存信息并与远程计算机共享。
Windows_XP进程和服务详解

关闭^^服务,让你的XP更流畅!众所周知,Windows XP集成了许多功能和服务,但是有很多服务是我们个人用户所用不到的,开启只会浪费内存和资源,而且,还影响启动速度。
经我试验和参考了众多的文章和微软的资料,关掉大部分没用的服务以后,系统的资源占用率有了大幅度的下降,系统运行当然也就更加顺畅了。
关闭服务的方法:控制面板-管理工具-服务。
如果调整后电脑出了问题,重新开启那个服务就可以了。
设定时右击一个服务,可以选择关闭,手动,还是自动(自动为跟Windows一起启动)。
手动为需要时它自行启动。
禁止为永远不启动。
以下是每个服务的详细说明。
注意:只要开头带*的服务不要关闭!!不然,后悔别怪我。
_______________________________________________________________________________ __________________* (建议选项)手动选项多些。
一般是用在服务器上,而不会影响系统速度。
(就算有影响,也只是一点而已)_______________________________________________________________________________ __________________alerter—(手)错误警报器,^^。
(你绝对要关的,不然,非烦死你不可)application layer gateway service—(手)给与第三者网络共享/防火墙支持的服务,有些防火墙/网络共享软件需要。
(例如瑞星某版本的防火墙等)application management—(手)用于设定,发布和删除软件服务。
(不要改动它)automatic updates—windows(禁)自动更新,滚!(不管是哪个版本的XP,都关!)background intelligent transfer service—(手)这个服务原是用来实现http1.1服务器之间的信息传输,微软称支持windows更新时断点续传。
windows 服务进程端口大全

本文包含有关在本文末尾“这篇文章的信息适用于:”部分中列出的 Microsoft 产
品的系统服务角色和服务器角色的信息。虽然此信息可能同样适用于 Microsoft
Windows XP 和 Microsoft Windows 2000 Professional,但本文主要集中讨论服
一个或多个 DHCP 服务器来维护 TCP/IP 配置信息并向客户端计算机提供此信息。
系统服务名称:*DHCPServer*
*应用程序协议* *协议* *端口*
DHCP 服务器 UDP 67
MADCAP UDP 2535
Server 系列、Microsoft Windows Server 2003 系列、Microsoft Exchange 2000
Server 和 Microsoft SQL Server 2000。所有这些产品都包括许多组件,系统服
务就是这些组件之一。特定计算机所需的系统服务或者由操作系统在启动期间自动
务器类操作系统。因此,本文介绍了服务侦听的端口,而没有介绍客户端程序用来
连接到远程系统的端口。
回到顶端 <#top>
系统服务端口
这一部分提供对每个系统服务的说明,包括与系统服务相对应的逻辑名称,还显示
了每个服务所需的端口和协议。
Active Directory(本地安全机构)
表。基于 Windows 的计算机使用“计算机浏览器”服务来查看网络域和资源。被指
定为浏览器的计算机维护浏览列表,这些列表中包含网络上使用的所有共享资源。
Windows 程序的早期版本(如网上邻居、*net view* 命令以及 Windows 资源管理
linux服务器进程监控及自动重启的方法介绍

linux服务器进程监控及自动重启的方法介绍linux服务器进程监控及自动重启的方法介绍自动重启故障相信大家都碰到过,原因也有很多,跟系统,硬件或者外界因素都有关。
这篇主要讲关于linux服务器进程监控及自动重启的简单方案,实现原理主要是使用linux提供的crontab机制,定时查询服务器进程能否存在,假如宕机则处理我们预设的脚本。
方法步骤本周开场,新手游进行删档封测阶段,前两天表现还好,今天更新后出现几次宕机行为,比拟影响玩家的测试和体验,我们的服务器管理系统尚未完善,为了晚上能够预防宕机造成损失,先用一种简单的方案临时顶替一下。
实现原理主要是使用linux提供的crontab机制,定时查询服务器进程能否存在,假如宕机则处理我们预设的脚本。
首先我们要向crontab参加一个新任务。
#crontab-e:进入编辑状态,其实就是使用vi编辑。
*/1****sh/root/monitor.sh我这里只是简单的设置每分钟调用一个shell脚本monitor.sh。
这里能够配置的更强大,大家能够去搜索一下crontab的教程,网上有很多这类的教程。
这里需要注意的是,很多教程配置command的时候直接使用/root/monitor.sh,我设置的时候发现这样配置不会执行shell脚本,前面加上sh后就能执行了。
然后我们开场写monitor.sh这个shell脚本。
#!/bin/shproc_name=WorldFrame_d#进程名proc_num()#查询进程数{num=`ps-ef|grep$proc_name|grep-vgrep|wc-l`return$num}proc_numnumber=$?#获取进程数量if[$number-eq0]#假如进程数量为0then#重新启动服务器,或者扩展其它内容。
cd/longwen/server/sbin/linux;./WorldFrame_d-c1fi我这个脚本,只是简单的检测了进程能否存在,不存在就自动重启服务器。
Linux查看服务状态(服务与进程)

Linux查看服务状态(服务与进程)指令(instruction):计算机实际上可以做的事情实质上⾮常简单,⽐如计算两个数的和,再⽐如在内存中寻找到某个地址等等。
这些最基础的计算机动作被称为指令(instruction)。
程序(program):这样⼀系列指令的所构成的集合。
通过程序,我们可以让计算机完成复杂的操作。
程序⼤多数时候被存储为可执⾏的⽂件。
这样⼀个可执⾏⽂件就像是⼀个菜谱,计算机可以按照菜谱作出可⼝的饭菜。
进程(process):进程是程序的⼀个具体实现。
只有⾷谱没什么⽤,我们总要按照⾷谱的指点真正⼀步步实⾏,才能做出菜肴。
进程是执⾏程序的过程,类似于按照⾷谱,真正去做菜的过程。
同⼀个程序可以执⾏多次,每次都可以在内存中开辟独⽴的空间来装载,从⽽产⽣多个进程。
不同的进程还可以拥有各⾃独⽴的IO接⼝。
可以使⽤$ps命令来查询正在运⾏的进程;参数:ps的参数⾮常多, 在此仅列出⼏个常⽤的参数并⼤略介绍含义-A 列出所有的进程(等价于-e)-w 显⽰加宽可以显⽰较多的资讯-au 显⽰较详细的资讯-aux 显⽰所有包含其他使⽤者的⾏程服务(service)服务相当于⽀持系统运⾏的⼀些必要程序,默默运⾏在系统后台的,他可以为应⽤程序提供⼀些更有特⾊的东西,⽐如播放MP3,开启⼀个播放MP3的服务,⽤户点击开始按钮通知服务开启,点击关闭按钮通知服务关闭,如果你禁⽤这个服务,那别⼈想播放MP3那是不⾏的,⽽且服务之间是有可能互相依靠的。
服务与进程?有⼈回答说:你开启了哪个服务任务管理器⾥就会有哪个服务相对应的进程;有⼈说:服务是每次开机会按照服务启动模式启动的进程的集合,服务可能包括很多进程。
⽽且启动的进程可能是互相交叉的。
linux查看服务:⼀、利⽤进程来查看命令⾥ ps -aux | grep xxx 是查看某个进程或者服务是否存在。
⼆、利⽤services命令1.查看单个服务的运⾏状态:service 服务名 status如:[root@localhost ~]# service sshd statusopenssh-daemon (pid 3701) 正在运⾏…2.查看所有服务的运⾏状态:service –status -all三、利⽤chkconfig配置⼯具(并没有试过)(在Ubuntu中是没有chkconfig命令的,可以⽤update-rc.d 来代替。
简述服务与进程的含义

简述服务与进程的含义
服务与进程是计算机技术中常被提及的概念,它们十分重要,可以帮助人们更好地了解系统的工作原理和把握计算机的运行特点。
本文尝试从概念的角度,简述服务与进程的概念及其之间的关系。
一、什么是服务?
服务是指在计算机系统中,一段独立的程序,负责执行某种任务,服务能够在主机上永久运行,为用户提供服务,例如定时、定期运行特定程序,或者在特定网络环境中提供服务。
服务也可以是用户自身设计的程序,也可以是由系统自带的服务程序。
服务本质上就是一台机器上运行的独立程序,它可以不断地处理输入的请求,输出用户需要的信息,从而提供服务。
二、什么是进程?
进程是指特定任务在计算机中的运行,它由一系列指令和数据组成,可以与数据库、文件系统、网络等设备进行交互,以完成特定需求。
进程的运行依赖于硬件资源,系统会按照特定的调度策略,将一系列需要处理的任务分配到各个处理器,以实现进程的多处理。
三、服务与进程的关系
服务是指在计算机系统中,一段独立的程序,负责执行某种任务,而进程是这种任务的运行。
每个服务可以由一个或多个进程构成,从表面上看,进程就是服务的执行单位,服务则是服务的抽象概念。
此外,服务的运行又可以分成不同的级别,比如运行服务的等待状态、休眠状态和活动状态,而进程却是服务的实际执行者,它可以根据服
务的状态实现相应的功能。
四、总结
服务是在计算机系统中,一段独立的程序,负责执行某种任务,而进程是这种任务的运行,服务由一个或多个进程构成,服务的状态变化会影响到进程的执行,因此,服务与进程是不可分割的,它们彼此之间的关系十分重要。
Mac命令行中的系统服务和进程管理技巧

Mac命令行中的系统服务和进程管理技巧在Mac系统中,命令行是一种非常强大的工具,它可以让用户更加直接地管理系统服务和进程。
本文将介绍一些在Mac命令行中使用的系统服务和进程管理技巧。
通过学习这些技巧,用户可以更好地掌握Mac系统的管理和调试能力。
一、查看系统服务和进程在命令行中,可以使用以下命令来查看系统服务和进程的相关信息:1. 查看系统中所有的服务:```shelllaunchctl list```该命令将显示当前系统中所有的服务及其对应的进程ID(PID)。
2. 查看指定服务的详细信息:```shelllaunchctl list | grep <service-name>```将上述命令中的`<service-name>`替换为要查看的服务名称,可以查看该服务的详细信息,包括进程ID、工作目录、启动时间等。
3. 查看系统中所有的进程:```shellps aux```该命令将显示当前系统中所有的进程及其详细信息,包括进程ID、CPU使用情况、内存占用等。
4. 查看指定进程的详细信息:```shellps aux | grep <process-name>```将上述命令中的`<process-name>`替换为要查看的进程名称,可以查看该进程的详细信息,包括进程ID、CPU使用情况、内存占用等。
二、管理系统服务和进程在Mac命令行中,可以使用以下命令来管理系统服务和进程:1. 启动服务:```shellsudo launchctl load <service-plist-file>```将上述命令中的`<service-plist-file>`替换为要启动服务的Property List文件路径,通过该命令可以启动指定的服务。
2. 停止服务:```shellsudo launchctl unload <service-plist-file>```将上述命令中的`<service-plist-file>`替换为要停止服务的Property List文件路径,通过该命令可以停止指定的服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用C语言编写Windows服务程序的五个步骤(附源代码)Windows服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。
为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。
本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件。
最后,你可以用所学知识编写自己的Windows服务。
当初我写第一个NT服务时,我到MSDN上找例子。
在那里我找到了一篇Nigel Thompson写的文章:“Creating a Simple Win32Service in C++”,这篇文章附带一个C++例子。
虽然这篇文章很好地解释了服务的开发过程,但是,我仍然感觉缺少我需要的重要信息。
我想理解通过什么框架,调用什么函数,以及何时调用,但C++在这方面没有让我轻松多少。
面向对象的方法固然方便,但由于用类对底层Win32函数调用进行了封装,它不利于学习服务程序的基本知识。
这就是为什么我觉得C更加适合于编写初级服务程序或者实现简单后台任务的服务。
在你对服务程序有了充分透彻的理解之后,用C++编写才能游刃有余。
当我离开原来的工作岗位,不得不向另一个人转移我的知识的时候,利用我用C所写的例子就非常容易解释NT服务之所以然。
服务是一个运行在后台并实现勿需用户交互的任务的控制台程序。
Windows NT/2000/XP操作系统提供为服务程序提供专门的支持。
人们可以用服务控制面板来配置安装好的服务程序,也就是Windows 2000/XP控制面板|管理工具中的“服务”(或在“开始”|“运行”对话框中输入services.msc/s——译者注)。
可以将服务配置成操作系统启动时自动启动,这样你就不必每次再重启系统后还要手动启动服务。
本文将首先解释如何创建一个定期查询可用物理内存并将结果写入某个文本文件的服务。
然后指导你完成生成,安装和实现服务的整个过程。
第一步:主函数和全局定义首先,包含所需的头文件。
例子要调用Win32函数(windows.h)和磁盘文件写入(stdio.h):#include<windows.h>#include<stdio.h>接着,定义两个常量:#define SLEEP_TIME5000#define LOGFILE"C:\\MyServices\\memstatus.txt"SLEEP_TIME指定两次连续查询可用内存之间的毫秒间隔。
在第二步中编写服务工作循环的时候要使用该常量。
LOGFILE定义日志文件的路径,你将会用WriteToLog函数将内存查询的结果输出到该文件,WriteToLog 函数定义如下:int WriteToLog(char*str){FILE*log;log=fopen(LOGFILE,"a+");if(log==NULL)return-1;fprintf(log,"%s\n",str);fclose(log);return0;}声明几个全局变量,以便在程序的多个函数之间共享它们值。
此外,做一个函数的前向定义:SERVICE_STATUS ServiceStatus;SERVICE_STATUS_HANDLE hStatus;void ServiceMain(int argc,char**argv);void ControlHandler(DWORD request);int InitService();现在,准备工作已经就绪,你可以开始编码了。
服务程序控制台程序的一个子集。
因此,开始你可以定义一个main函数,它是程序的入口点。
对于服务程序来说,main的代码令人惊讶地简短,因为它只创建分派表并启动控制分派机。
void main(){SERVICE_TABLE_ENTRY ServiceTable[2];ServiceTable[0].lpServiceName="MemoryStatus";ServiceTable[0].lpServiceProc=(LPSERVICE_MAIN_FUNCTION)ServiceMain;ServiceTable[1].lpServiceName=NULL;ServiceTable[1].lpServiceProc=NULL;//启动服务的控制分派机线程StartServiceCtrlDispatcher(ServiceTable);}一个程序可能包含若干个服务。
每一个服务都必须列于专门的分派表中(为此该程序定义了一个ServiceTable结构数组)。
这个表中的每一项都要在SERVICE_TABLE_ENTRY结构之中。
它有两个域:lpServiceName:指向表示服务名称字符串的指针;当定义了多个服务时,那么这个域必须指定;pServiceProc:指向服务主函数的指针(服务入口点);分派表的最后一项必须是服务名和服务主函数域的NULL指针,文本例子程序中只宿主一个服务,所以服务名的定义是可选的。
服务控制管理器(SCM:Services Control Manager)是一个管理系统所有服务的进程。
当SCM启动某个服务时,它等待某个进程的主线程来调用StartServiceCtrlDispatcher函数。
将分派表传递给StartServiceCtrlDispatcher。
这将把调用进程的主线程转换为控制分派器。
该分派器启动一个新线程,该线程运行分派表中每个服务的ServiceMain函数(本文例子中只有一个服务)分派器还监视程序中所有服务的执行情况。
然后分派器将控制请求从SCM传给服务。
注意:如果StartServiceCtrlDispatcher函数30秒没有被调用,便会报错,为了避免这种情况,我们必须在ServiceMain函数中(参见本文例子)或在非主函数的单独线程中初始化服务分派表。
本文所描述的服务不需要防范这样的情况。
分派表中所有的服务执行完之后(例如,用户通过“服务”控制面板程序停止它们),或者发生错误时。
StartServiceCtrlDispatcher调用返回。
然后主进程终止。
第二步:ServiceMain函数Listing1展示了ServiceMain的代码。
该函数是服务的入口点。
它运行在一个单独的线程当中,这个线程是由控制分派器创建的。
ServiceMain应该尽可能早早为服务注册控制处理器。
这要通过调用RegisterServiceCtrlHadler函数来实现。
你要将两个参数传递给此函数:服务名和指向ControlHandlerfunction的指针。
它指示控制分派器调用ControlHandler函数处理SCM控制请求。
注册完控制处理器之后,获得状态句柄(hStatus)。
通过调用SetServiceStatus函数,用hStatus向SCM报告服务的状态。
Listing1展示了如何指定服务特征和其当前状态来初始化ServiceStatus结构,ServiceStatus结构的每个域都有其用途:dwServiceType:指示服务类型,创建Win32服务。
赋值SERVICE_WIN32;dwCurrentState:指定服务的当前状态。
因为服务的初始化在这里没有完成,所以这里的状态为SERVICE_STAR T_PENDING;dwControlsAccepted:这个域通知SCM服务接受哪个域。
本文例子是允许STOP和SHUTDOWN请求。
处理控制请求将在第三步讨论;dwWin32ExitCode和dwServiceSpecificExitCode:这两个域在你终止服务并报告退出细节时很有用。
初始化服务时并不退出,因此,它们的值为0;dwCheckPoint和dwWaitHint:这两个域表示初始化某个服务进程时要30秒以上。
本文例子服务的初始化过程很短,所以这两个域的值都为0。
调用SetServiceStatus函数向SCM报告服务的状态时。
要提供hStatus句柄和ServiceStatus结构。
注意ServiceStatus一个全局变量,所以你可以跨多个函数使用它。
ServiceMain函数中,你给结构的几个域赋值,它们在服务运行的整个过程中都保持不变,比如:dwServiceType。
在报告了服务状态之后,你可以调用InitService函数来完成初始化。
这个函数只是添加一个说明性字符串到日志文件。
如下面代码所示://服务初始化int InitService(){int result;result=WriteToLog("Monitoring started.");return(result);}在ServiceMain中,检查InitService函数的返回值。
如果初始化有错(因为有可能写日志文件失败),则将服务状态置为终止并退出ServiceMain:error=InitService();if(error){//初始化失败,终止服务ServiceStatus.dwCurrentState=SERVICE_STOPPED;ServiceStatus.dwWin32ExitCode=-1;SetServiceStatus(hStatus,&ServiceStatus);//退出ServiceMainreturn;}如果初始化成功,则向SCM报告状态://向SCM报告运行状态ServiceStatus.dwCurrentState=SERVICE_RUNNING;SetServiceStatus(hStatus,&ServiceStatus);接着,启动工作循环。
每五秒钟查询一个可用物理内存并将结果写入日志文件。
如Listing1所示,循环一直到服务的状态为SERVICE_RUNNING或日志文件写入出错为止。
状态可能在ControlHandler函数响应SCM控制请求时修改。
第三步:处理控制请求在第二步中,你用ServiceMain函数注册了控制处理器函数。
控制处理器与处理各种Windows消息的窗口回调函数非常类似。
它检查SCM发送了什么请求并采取相应行动。
每次你调用SetServiceStatus函数的时候,必须指定服务接收STOP和SHUTDOWN请求。
Listing2示范了如何在ControlHandler函数中处理它们。
STOP请求是SCM终止服务的时候发送的。
例如,如果用户在“服务”控制面板中手动终止服务。
SHUTDOWN请求是关闭机器时,由SCM发送给所有运行中服务的请求。
两种情况的处理方式相同:写日志文件,监视停止;向SCM报告SERVICE_STOPPED状态;由于ServiceStatus结构对于整个程序而言为全局量,ServiceStatus中的工作循环在当前状态改变或服务终止后停止。