Linux系OSのシェルスクリプトについて質問です。
スクリプトの内容としては各主要サービスの起動と停止を行う内容になります。
ここでお伺いしたい内容はスクリプトの途中でサービスが起動しているかどうか、grepの戻り値によって処理を変更する場合にgrepの戻り値がどうにもおかしい場合、どのような原因が考えられるか、ということです。
【スクリプト内容(抜粋)】
#!/bin/bash
---中略---
echo "Apache2起動前確認" | tee -a ${LOG}
ps -ef | grep apache2 | grep -v "grep" > /dev/null
if [ $? == 0 ];
then
---省略---
上記の内容はapache2を起動する際、apache2が起動していれば処理を中止する内容の一部ですが、当然起動していればpsコマンドで内容が出るのでgrepの戻り値は0になり、「then」の内容が実施されます。
これはこれで完成されているので問題なく稼動します。
しかしこれとまったく同じ内容で、apache2をmysqlに変更したものが問題でこちらが正常に動作しないのです。
【スクリプト内容(抜粋)】
#!/bin/bash
---中略---
echo "MySQL起動前確認" | tee -a ${LOG}
ps -ef | grep mysql | grep -v "grep" > /dev/null
if [ $? == 0 ];
then
---省略---
これだとなぜか停止しているときに戻り値が「0」、起動しているときに戻り値が「1」になってしまいます。
ifとpsの間に「echo $?」をかませてみても想定外の戻り値がセットされているためif文そのものには間違いはありません。
また、コマンドラインで「ps -ef | grep mysql | grep -v "grep" > /dev/null ; echo $?」を
実施しても戻り値は「1」に(停止している場合)なるのですが、スクリプト上では戻り値「0」がセットされるようです。
何ゆえこのような意図しない動作をするのか考えてもわかりません。
apache2の場合だと正常に動くだけになおわかりません。
因みに停止しているとき、起動しているときでまったく逆の戻り値がそれぞれ返ってきているようです。
どなたか原因がわかる人は教えてください、宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- UNIX・Linux swapが機能しているかの確認について 2 2022/09/18 13:17
- UNIX・Linux bashスクリプトのgrepで3XXの検索の仕方について 2 2022/09/06 21:35
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- その他(ブラウザ) ブラウザが起動しない 2 2023/04/13 12:06
- 消費者問題・詐欺 お金を取り返すことは可能でしょうか? 4 2023/01/07 13:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DOSプロンプトとコマンドプロン...
-
Oracleの起動時に、マウントし...
-
VBからExcelを起動しE...
-
VBScript 実行時エラーについて
-
oracleのサービスがずっと開始...
-
EXCEL VBA UserFormで困ってい...
-
Excel2013VBAでフリーソフト「...
-
ORA-01013のエラーについて経験...
-
PL/SQLでログを確認したい。
-
PL/SQLのコンパイルエラーにつ...
-
CASE文のエラーについて
-
SQLLOADER
-
はじめまして!
-
バージョン違いのエクスポート/...
-
batファイルでのSQL(oracle)...
-
表領域に追加したファイルの削除
-
なぜ再起動すると空き領域が増...
-
データベースオブジェクトの考...
-
シェルスクリプトでオラクルの...
-
PL/SQL PLS-00103エラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DOSプロンプトとコマンドプロン...
-
Oracleの起動時に、マウントし...
-
Excel2013VBAでフリーソフト「...
-
VBScript 実行時エラーについて
-
oracleのサービスがずっと開始...
-
Oracle_リスナーありませんって...
-
EXCEL VBA UserFormで困ってい...
-
VBからExcelを起動しE...
-
FDD起動のMS-DOSにて、再起動を...
-
バッチ処理について
-
MSDEを停止させるコマンド
-
Pythonのバージョン読み出しコ...
-
not a valid identifier
-
outlook2013 アップグレード中 ...
-
VBAでURLをブラウザで起動させたい
-
hspでのCDドライブ開閉
-
Oracle10gの起動を止めたいので...
-
VBでMSDEのサービスを開始させ...
-
ブルースクリーンがすぐに出る
-
エクセルマクロによるハイパー...
おすすめ情報