Windows中,net
与 sc
这两个命令都可以用来开启或者关闭某个服务。
例如 net start mysql
, net stop mysql
, sc start mysql
, sc stop mysql
. 那么它们之间有什么区别呢?
主要有如下区别:
net
较早的 - 事实上,从MS-DOS和OS/2时代就开始了。
sc
只出现在Windows NT中net
只能启动、停止和暂停服务。
sc
拥有更高级的控件,可以查询状态,创建和删除服务,更改其配置和安全性:sc config mysql start= demand
net
只能在本地工作。
sc
可以在网络上使用:sc \snow start rpcapd
net
接受显示名称:net start "Windows Firewall"
sc
总是需要服务名:sc start SharedAccess
二者最重要的区别在于 net
是一种同步的管理方式,sc
是一种异步的管理方式。怎样理解呢?
我们想重启mysql服务,可以直接用 net stop mysql & net start mysql
, 也就是说 命令会依次执行关闭和开启mysql的步骤,当服务确认关闭之后,才会接着执行开启的指令。
此时,如果我们用 sc stop mysql & sc start mysql
, 则会失败。因为 stop mysql
只是发送了一个关闭mysql的信号而已,此时服务尚未完成关闭,这时候执行 sc start mysql
,就会遇到错误。