質問編集履歴
1
シェル→シェルスクリプト
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
シェルの二重起動防止を機能させたい。
|
1
|
+
シェルスクリプトの二重起動防止を機能させたい。
|
body
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
## 解決したいこと
|
2
|
+
動作確認時、フルパスでシェルスクリプトを実行した場合は二重起動防止が働くが、
|
2
|
-
|
3
|
+
(sh /usr/local/test/20_test.sh)
|
3
|
-
カレントディレクトリを省略してシェルを実行すると二重起動防止が働かない。
|
4
|
+
カレントディレクトリを省略してシェルスクリプトを実行すると二重起動防止が働かない。
|
4
5
|
(sh 20_test.sh)
|
5
6
|
(./20_test.sh)
|
6
7
|
※どちらも"cd /usr/local/test/"で対象シェルのカレントディレクトリに移動済み。
|
7
8
|
|
8
9
|
## 背景
|
9
|
-
◆対象シェルに二重起動防止を追加し、二重起動防止が機能しているか動作確認で以下のテストを行った。
|
10
|
+
◆対象シェルスクリプトに二重起動防止を追加し、二重起動防止が機能しているか動作確認で以下のテストを行った。
|
11
|
+
(環境はTeraterm)
|
10
|
-
1. 対象のシェルを手動で実行後、5秒後にまた手動で実行する。
|
12
|
+
1. 対象のシェルスクリプトを手動で実行後、5秒後にまた手動で実行する。
|
11
|
-
2. 対象のシェルをcronで実行後、5秒後に手動で実行する。
|
13
|
+
2. 対象のシェルスクリプトをcronで実行後、5秒後に手動で実行する。
|
12
|
-
3. 対象のシェルを手動で実行後、5秒後にcronで実行する。
|
14
|
+
3. 対象のシェルスクリプトを手動で実行後、5秒後にcronで実行する。
|
13
15
|
|
14
16
|
◆各テスト結果の確認は以下を判断にした。
|
15
17
|
1. エラーログが吐き出され、タイムスタンプが実行時であること。
|
@@ -21,9 +23,9 @@
|
|
21
23
|
・
|
22
24
|
$ 2021/06/18 13:30:09 【実行終了】
|
23
25
|
|
24
|
-
対象のシェルは以下になる。
|
26
|
+
対象のシェルスクリプトは以下になる。
|
25
27
|
|
26
|
-
```対象シェル
|
28
|
+
```対象シェルスクリプト
|
27
29
|
#!/bin/bash
|
28
30
|
|
29
31
|
# 自シェルのパスを取得
|
@@ -51,4 +53,4 @@
|
|
51
53
|
30 13 * * * /usr/local/test/20_test.sh
|
52
54
|
```
|
53
55
|
|
54
|
-
手動実行時、フルパスでシェルを実行する分には二重起動防止の機能が働くことは証明できたが、実際に運用する作業員がシェル実行時に"./20_test.sh"で実行するのでなるべく作業員の意に沿って実装したいのでお力をお貸し下さい。
|
56
|
+
手動実行時、フルパスでシェルスクリプトを実行する分には二重起動防止の機能が働くことは証明できたが、実際に運用する作業員がシェルスクリプト実行時に"./20_test.sh"で実行するのでなるべく作業員の意に沿って実装したいのでお力をお貸し下さい。
|