環境 linux(redhat) 使用シェル bash
シェルスクリプトAとシェルスクリプトBを作成し、
シェルスクリプトAが動作している間は、シェルスクリプトBの動作を禁止したいと考えています。
例えば、シェルスクリプトAが起動している状態で、シェルスクリプトBが起動されたとき、シェルスクリプトBは、シェルスクリプトAが起動していることを検知して、自発的に処理を終了するようにしたいと考えています。
上記のような仕組みをシェルスクリプトで実現可能でしょうか?
基本的には、シェルスクリプトの先頭で、ある資源のロックを行い、終了時にロックの解放ができれば、その仕組みは実現可能と考えています。
(シェルの異常終了時は、ロックが自動的に解放されることが望ましい)
上記のようなことをシェル(bash)で実現可能でしょうか。
bash単独での方法、もしくはbashからperl,C言語作成の実行モジュールを呼び出す方法でもかまいません。
(ちなみにperl(もしくはC言語作成のモジュール)単独では実現可能なことはわかっています)
No.1ベストアンサー
- 回答日時:
lockfileコマンドでいけるのではないかと。
詳しくはman lockfileをご覧下さい。
ただ、異常終了時は少し困りますね。
trapコマンドでシグナルを捕捉することはできますが、
SIGKILLは捕捉できないです。
まぁ、どうしようもないですが。
No.2
- 回答日時:
自分がよく使っていた方法としては、
・シェルスクリプトA起動時に、/var/runにPIDを書いたファイル(shella.pid)を書き出す。終了時に削除する
・シェルスクリプトB起動時に前述のファイルがあるかどうかをチェックする
って感じでした
異常終了したりしてPIDファイルが残ったりするとダメですが
シェルスクリプトA自身でもファイルの存在をチェックすれば2重起動の防止にもなります
単純に、
> シェルスクリプトの先頭で、ある資源のロックを行い、終了時にロックの解放ができれば、その仕組みは実現可能と考えています。
の「ある資源」=ファイルで実現しているだけですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- その他(プログラミング・Web制作) linuxについて質問です 1 2023/02/06 19:55
- PostgreSQL postgreSQLをbashで実行する際に「MORE」表示をなくす方法 1 2023/05/08 21:42
- UNIX・Linux Linuxについて2つ質問したいです。 ① シェルスクリプト名をawk1.shとして、指定されたデー 1 2023/02/03 03:49
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をdiff.shとして、以下のように2つのテキストフ 1 2023/02/03 20:06
- UNIX・Linux テキストエディタのVimもEmacsも飽きたし病んでしまいました。助けてください。 5 2023/07/05 15:56
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- その他(プログラミング・Web制作) シェルのSTEP数について教えてください。シェルスクリプトの先頭に、#!/bin/shとか書きますよ 3 2023/06/08 19:02
- UNIX・Linux gawk 3 2022/08/18 14:07
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html上で、バッチやexeファイル...
-
Access VBAよりシート名を取得...
-
RPA(PowerAutomate)の実装について
-
HTMLファイルからexeファイルを...
-
量子化学計算ソフト GAMESS の...
-
VBA Application visibleの...
-
vb.netでフォルダをcab圧縮する...
-
複数のパソコン間のDir関数につ...
-
OLEオブジェクトのことなのですが
-
exeファイルが実行中かどうか、...
-
別のAccessファイルのフォーム...
-
Eclipseで、プロジェクト名のと...
-
Eclipseのアンインストールの仕方
-
Eclipse(JAVA)のデバッグで他...
-
classファイルについて
-
javaクラスファイルをEclipseで...
-
JSPのクラスをコンパイルできな...
-
.jarファイルの中身って書き換...
-
正しいURL指定しているにもかか...
-
マイクラjavaでForgeを入れたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html上で、バッチやexeファイル...
-
RPA(PowerAutomate)の実装について
-
別のAccessファイルのフォーム...
-
HTMLファイルからexeファイルを...
-
jspのエラーが修正できません。
-
Access VBAよりシート名を取得...
-
VBA Application visibleの...
-
*.asp の拡張子名がついたht...
-
system.mdwを見つけることが出...
-
量子化学計算ソフト GAMESS の...
-
VBAで作成したマクロをデスクト...
-
EXE間で同期をとりながらデータ...
-
LabVIEWでEXCELファイルを操作...
-
エラー この変数は宣言されて...
-
vbsかバッチファイルでmp3を再...
-
起動中の全てのアプリ名の取得...
-
EXCELアドイン自動起動マクロ
-
VBでShell○なのにShellExecute×
-
複数のパソコン間のDir関数につ...
-
AccessのMDBファイルを自動で最...
おすすめ情報