[Windows]コマンド上でサービスを操作する方法

takahashi 著者:takahashi

[Windows]コマンド上でサービスを操作する方法

LinuxなどのUnixライクなOSには”デーモン”と呼ばれる概念があります。
ユーザーが起動しなくてもOSの裏側で常に動作し、いろいろなことをしてくれる所謂”常駐アプリ”です。

一方、Windowsにも同様の仕組みがありますが、こちらは”サービス”と呼ばれます。
基本的に、内容はデーモンとさほど変わりません。

デーモンを操作する場合、例えばLinux系では

#サービスの停止(Systemd)
systemctl stop サービス名

#サービスの開始(Systemd)
systemctl start サービス名

#サービスの停止(sysvinit)
service サービス名 stop

#サービスの開始(sysvinit)
service サービス名 start

etc...

というように、コマンドで操作します。
また、サービスを自動開始させるかどうかは

#サービスの自動開始有効化/無効化(Systemd)
systemctl enable サービス名
systemctl disable サービス名

#サービスの自動開始有効化/無効化(sysvinit)
chkconfig サービス名 on
chkconfig サービス名 off

のようにします。

一方Windowsのサービスの場合は、Windows自体がGUIありきのOSなので、サービスの操作も、標準でGUIから行うことができます。


“サービス”アプリの画面

サービスの自動起動の有効/無効もGUI上から指定できます。

しかし、Windowsでも、処理のバッチ化などをするためにコマンドライン上から操作をしたい場面があります。
GUIの自動操作はなかなかやりづらいので、CUI上で操作できる方法を探したところ、見つけることができました。

バッチ で Windowsサービス を 起動、終了 する 方法 – galife

Windows上のコマンドラインででサービスを操作する場合は、

#サービスの停止
net stop サービス名

#サービスの開始
net start サービス名

これだけでいけます。
操作感はUnixライクなOSに結構似ていますね。

ちなみに、ちょっとわかりづらいですが、サービスの自動機能のon offは”sc”コマンドを使うことで操作できるようです。

sc.exe でサービスのスタートアップの種類を変更するAdd Star – 日々是笑心

WindowsのCUI環境はちょっと特殊で、難解感も感じることがありそうですが、覚えておくと非常に楽になるかもしれませんね。

  • この記事いいね! (0)

著者について

takahashi

takahashi administrator

Webエンジニア。 趣味で自宅サーバーを稼働中。 ファンタジーが好き。