teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/01/21 10:23

投稿

nullpon
nullpon

スコア5739

answer CHANGED
@@ -3,7 +3,38 @@
3
3
  #!/bin/bash
4
4
  name=`basename $0`
5
5
  pidfile="/var/run/${name}.pid"
6
+
6
7
  [[ -f "$pidfile" ]] && exit 0
8
+
7
9
  trap "rm -f -- '$pidfile'" EXIT
8
10
  echo $$ > "$pidfile"
11
+ ```
12
+
13
+ 追記
14
+ 子スクリプト対応バージョン
15
+ ```bash
16
+ --- parent_script.sh ---
17
+ #!/bin/bash
18
+ name=`basename $0`
19
+ pidfile="/var/run/${name}.pid"
20
+
21
+ script_name1=child_script1.sh
22
+ script_name2=child_script2.sh
23
+ pidfile1="/var/run/${script_name1}.pid"
24
+ pidfile2="/var/run/${script_name2}.pid"
25
+
26
+ [[ -f "$pidfile" -o -f "$pidfile1" -o -f "$pidfile2" ]] && exit 0
27
+
28
+ trap "rm -f -- '$pidfile'" EXIT
29
+ echo $$ > "$pidfile"
30
+
31
+ --- child_script1/2.sh ---
32
+ #!/bin/bash
33
+ name=`basename $0`
34
+ pidfile="/var/run/${name}.pid"
35
+
36
+ [[ -f "$pidfile" ]] && exit 0
37
+
38
+ trap "rm -f -- '$pidfile'" EXIT
39
+ echo $$ > "$pidfile"
9
40
  ```