Windowsのサービスをコントロールするスクリプト

linuxでサービス起動・停止・チェックをスクリプト化してる。
oracle express/sqlserver express/postgresql13,14をサービスとして扱い、windowsでもやってみた。

ベターっと書いてるけど、書き方思い出せないときのためのメモ。

使うコマンド

こんな感じで起動と停止。

net start (サービス名)
net stop  (サービス名)

チェックはこんな感じ。

sc query (サービス名) | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo (サービス名) -- Running
) else (
  echo (サービス名) -- Down
)

Oracle起動

なんでか知らんけどVssWriterXEの操作うまくいかへんかったからコメント化。

@echo off
rem +-----------------------------------------+
rem | 処理名:oracleサービス起動
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

rem oracle21 expressサービス起動

set sv11="OracleServiceXE"
set sv12="OracleOraDB21Home2MTSRecoveryService"
set sv13="OracleOraDB21Home2TNSListener"
set sv14="OracleVssWriterXE"

@echo on

net start %sv11%
net start %sv12%
net start %sv13%
rem net start %sv14%

timeout /T 20
exit /b

Oracle停止

@echo off
rem +-----------------------------------------+
rem | 処理名:oracleサービス停止
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

rem oracle21 expressサービス停止

set sv11="OracleServiceXE"
set sv12="OracleOraDB21Home2MTSRecoveryService"
set sv13="OracleOraDB21Home2TNSListener"
set sv14="OracleVssWriterXE"

@echo on

net stop %sv11%
net stop %sv12%
net stop %sv13%
rem net start %sv14%

timeout /T 20
exit /b

sqlserver起動

@echo off
rem +-----------------------------------------+
rem | 処理名:sqlserverサービス起動
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

rem sqlserver expressサービス起動

set sv21="MSSQL$SQLEXPRESS"
set sv22="SQLTELEMETRY$SQLEXPRESS"
set sv23="SQLWriter"

@echo on

net start %sv21%
net start %sv22%
net start %sv23%

timeout /T 20
exit /b

sqlserver停止

@echo off
rem +-----------------------------------------+
rem | 処理名:sqlserverサービス停止
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

rem sqlserver expressサービス停止

set sv21="MSSQL$SQLEXPRESS"
set sv22="SQLTELEMETRY$SQLEXPRESS"
set sv23="SQLWriter"

@echo on

net stop %sv21%
net stop %sv22%
net stop %sv23%

timeout /T 20
exit /b

postgresql起動

@echo off
rem +-----------------------------------------+
rem | 処理名:postgresqlサービス起動
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

rem postgresqlサービス起動

set sv31="postgresql-x64-13"
set sv32="postgresql-x64-14"

@echo on

net start %sv31%
net start %sv32%

timeout /T 20
exit /b

postgresql停止

@echo off
rem +-----------------------------------------+
rem | 処理名:postgresqlサービス停止
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

rem postgresqlサービス停止

set sv31="postgresql-x64-13"
set sv32="postgresql-x64-14"

@echo on

net stop %sv31%
net stop %sv32%

timeout /T 20
exit /b

起動状態チェック

@echo off
rem +-----------------------------------------+
rem | 処理名:サービス状態表示
rem | 作成日:2022/4/9
rem | 
rem +-----------------------------------------+

set sv11="OracleServiceXE"
set sv12="OracleOraDB21Home2MTSRecoveryService"
set sv13="OracleOraDB21Home2TNSListener"
set sv14="OracleVssWriterXE"

set sv21="MSSQL$SQLEXPRESS"
set sv22="SQLTELEMETRY$SQLEXPRESS"
set sv23="SQLWriter"

set sv31="postgresql-x64-13"
set sv32="postgresql-x64-14"

remサービス起動チェック

echo----------Oracle サービス---------

sc query %sv11% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv11% -- Running
) else (
  echo %sv11% -- Down
)

sc query %sv12% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv12% -- Running
) else (
  echo %sv12% -- Down
)

sc query %sv13% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv13% -- Running
) else (
  echo %sv13% -- Down
)

echo--
echo---------SQLServer サービス-------

sc query %sv21% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv21% -- Running
) else (
  echo %sv21% -- Down
)

sc query %sv22% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv22% -- Running
) else (
  echo %sv22% -- Down
)

sc query %sv23% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv23% -- Running
) else (
  echo %sv23% -- Down
)

echo--
echo-------Postgresql13 サービス-----

sc query %sv31% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv31% -- Running
) else (
  echo %sv31% -- Down
)

echo--
echo-------Postgresql14 サービス-----

sc query %sv32% | find "RUNNING" > NUL
if %ERRORLEVEL% == 0 (
  echo %sv32% -- Running
) else (
  echo %sv32% -- Down
)

echo--
echo---------------------------------

rem pause
タイトルとURLをコピーしました