Rainbow Planet

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Windows Server

Windowsにおけるプロセスとサービスの概要や両者の違いについて

投稿日:2020年6月1日 更新日:

(0)目次&概説

(1) 記事の目的
 (1-1) 目的
(2) プロセスについて
 (2-1) プロセスとは?
 (2-2) バックグラウンドプロセスとは?
 (2-3) コマンドでプロセスを探す方法
(3) サービスについて
 (3-1) サービスとは?
 (3-2) サービスとプロセスの違いは?

(1) 記事の目的

(1-1) 目的

・Windows(OS)のプロセスとサービスの意味や違いについて理解する事。
・コマンドを利用してプロセスの検索が行える事。

目次にもどる

(2) プロセスについて

(2-1) プロセスとは?

・プロセスは「.exe」ファイルのインスタンス(起動している実態)です。デスクトップからプログラムを実行した際にプロセスが起動します。
 
(図211)①プロセスの実態は「.exe」ファイルのインスタンス

・1つのプロセスは複数のスレッドで実行させる事が可能で、また1つのプログラムは複数のプロセスを実行させる事が可能です。
 
(図211)②Google Chrome等は1つのプログラムで複数の「chrome.exe」プロセスが起動する

・例えばブラウザを起動すると窓が一つでも複数のプロセスが実行されています(各タブ毎にプロセスを起動したり)
・他には複雑なアプリでは複数のプロセスを起動させるケースがあり、Visual Studio等ではプログラムのコンパイルとIDEの表示とで別々のプロセスが起動しています。
・ですが多くの場合はアプリケーション(≒プログラム)に対して1つのプロセスが起動しています(例えばMicrosoft Word等はいくつドキュメントを立ち上げてもプロセスは1つ)
 
(図212)③逆にWordは複数開いても1プロセス

目次にもどる

(2-2) バックグラウンドプロセスとは?

・ただしプロセスの中でも時々「サービスではない」ものの、デスクトップでのやり取りなく(GUI等がなく)バックグラウンドで動作するものもあり、これらを「バックグラウンドプロセス」と呼んでいます。
・バッググラウンドプロセスとサービスは似ているものの、バッググラウンドプロセスは「ユーザープロセス」を実行しているのに対して、サービスは「Windowsプロセス」を実行しているため、より多くの権限が付与されています。

目次にもどる

(2-3) コマンドでプロセスを探す方法

コマンドプロンプト(cmd)からプロセスに関する照会や操作を行うためのコマンドをいくつか紹介します。
①プロセスの状態やPIDを確認

> tasklist

(図231)

②プロセス名を指定して照会
「eq」は比較演算子で左辺(Imagename=プロセス名を表す単語)が右辺(探したいプロセス名)に等しい(equal)という意味になります。ワイルドカード(*)での前方一致検索も可能です。

> tasklist /fi "Imagename eq [Process name].exe"
> tasklist /fi "Imagename eq [Partial Process Name]*"

③プロセスの停止

> taskkill /pid [Process ID]

目次にもどる

(3) サービスについて

(3-1) サービスとは?

■バックグラウンドで動作
・ユーザがアプリケーションを起動しているか否かにかかわらず見えない部分(バックグラウンド)で起動しているプログラムです(デスクトップからはやり取りが行われない)

■GUIなし
・昔のWindows(Vista以前)ではサービスのGUIがありましたが、現在ではGUIはありません。

■OSブートと同時に起動
・サービスは基本的にOSの起動と同時に自動で開始しますが、ユーザー側にて手動で起動、停止、再起動などの操作も可能です。
・更にはイベントに応じて起動させる事も可能です(イベントや特定のエラーなどをトリガーにする)

■実態は「svchost.exe」(の場合が多い)
・多くの場合、サービスは「svchost.exe」(Windows Service Host Process)のインスタンスとして実行されます(svchost.extの実行時の引数にサービス名を指定する)

(図311)
 
・例としてウイルスソフト等はユーザがログオンしていない時でも常時サービスを提供し続けるため、サービスとして起動しています。

目次にもどる

(3-2) サービスとプロセスの違いは?

以上を踏まえて、プロセスとサービスの違いを簡単ですが表で比較します。
(表)プロセスとサービスの違い

比較項目 プロセス サービス
起動 デスクトップから起動 OS起動時に自動起動
(バックグラウンドで動作)
ユーザがログオフした時 停止する 継続起動する
GUI 基本ある
(ないプロセスもあり)
原則ない
起動ユーザ 通常ユーザ ローカルシステムアカウント
(管理者権限あり)
起動・停止コマンド 起動
cmdでexeファイルのあるディレクトリに移動してファイル名を入力・実行
> [exeファイル名].exe
停止
> taskkill /pid [Process ID]
起動
> NET START [Service Name]
停止
> NET STOP [Service Name]
その他   SCM(Service Control Manager)の指示を受けるための特別なコードを記載する必要がある

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Windows Server

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Thumbs.dbが作られないように設定する方法(Windowsサーバー)

(0)目次&概説 (1) Thumbs.dbとは  (1-1) Thumbs.dbとは  (1-2) Thumbs.dbが作られるタイミング  (1-3) Thumbs.dbが作られる場所 (2) T …

Windowsでサービスの起動状態(ステータス)を取得するバッチ

<目次> (1) Windowsでサービスの起動状態(ステータス)を取得するバッチ  (1-1) 構文  (1-2) サンプルプログラム  (1-3) 実行手順  (1-4) 実行手順サンプル動画 ( …

Windowsのバッチで日付(yyyymmdd形式)や時刻(hhmmss形式)を取得する方法

<目次> (1) Windowsのバッチで日付(yyyymmdd形式)や時刻(hhmmss形式)を取得する方法  (1-1) バッチで日付を取得する  (1-2) バッチで日付を取得する(yyyymm …

Windows Server2012で仮想サーバーのメモリ割当ての変更をする手順

(0)目次&概説 (1) 前提条件 (2) メモリ割当ての変更手順  (2-1) 事前作業(ログ取得)  (2-2) 仮想サーバーの停止  (2-3) リソース変更  (2-4) 仮想サーバーの起動 …

サービスとしてログオンとは?+WindowsServerでの設定方法もご紹介

<目次> (1) サービスとしてログオンとは?+WindowsServerでの設定方法もご紹介  (1-1) サービスとしてログオンとは?  (1-2) WindowsServerでの設定方法 (1) …

  • English (United States)
  • 日本語
Top