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

回答編集履歴

2

追記: strace

2017/06/27 06:13

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

answer CHANGED
@@ -17,3 +17,69 @@
17
17
  notify_master "/bin/sh -x /etc/keepalived/master.sh >/tmp/master.log 2>&1"
18
18
  notify_backup "/bin/sh -x /etc/keepalived/backup.sh >/tmp/backup.log 2>&1"
19
19
  ```
20
+ ---
21
+ **(2017/06/27 15:12) 追記**
22
+ 同じ環境ですが、問題なく実行できました。
23
+ こちらでは再現できないので、何とも言えませんが、strace でトレースすると何か違いがあるかもしれません。
24
+
25
+ ```
26
+ [root]# strace -f -e open,execve -o /tmp/strace.log /usr/sbin/keepalived -D
27
+
28
+ (/bin/sh 実行箇所を抜粋)
29
+
30
+ 1522 open("/bin/sh", O_RDONLY) = 15
31
+ 1521 open("/etc/keepalived/keepalived.conf", O_RDONLY) = 10
32
+ 1521 open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 10
33
+ 1521 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 10
34
+ 1521 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 10
35
+ 1521 open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 10
36
+ 1521 open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 10
37
+ 1521 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 10
38
+ 1523 open("/dev/null", O_RDWR) = 15
39
+ 1521 open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 10
40
+ 1524 execve("/bin/sh", ["sh", "-c", "/bin/sh -x /etc/keepalived/backu"...], [/* 24 vars */]) = 0
41
+ 1524 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
42
+ 1524 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
43
+ 1524 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
44
+ 1524 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
45
+ 1524 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
46
+ 1524 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
47
+ 1524 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
48
+ 1524 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
49
+ 1525 open("/tmp/backup.log", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
50
+ 1525 execve("/bin/sh", ["/bin/sh", "-x", "/etc/keepalived/backup.sh"], [/* 23 vars */]) = 0
51
+ 1525 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
52
+ 1525 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
53
+ 1525 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
54
+ 1525 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
55
+ 1525 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
56
+ 1525 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
57
+ 1525 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
58
+ 1525 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
59
+ 1525 open("/etc/keepalived/backup.sh", O_RDONLY) = 3
60
+ 1526 execve("/usr/bin/systemctl", ["systemctl", "stop", "httpd.service"], [/* 23 vars */]) = 0
61
+ (中略)
62
+ 1522 open("/bin/sh", O_RDONLY) = 14
63
+ 1531 open("/dev/null", O_RDWR) = 14
64
+ 1532 execve("/bin/sh", ["sh", "-c", "/bin/sh -x /etc/keepalived/maste"...], [/* 24 vars */]) = 0
65
+ 1532 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
66
+ 1532 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
67
+ 1532 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
68
+ 1532 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
69
+ 1532 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
70
+ 1532 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
71
+ 1532 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
72
+ 1532 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
73
+ 1533 open("/tmp/master.log", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
74
+ 1533 execve("/bin/sh", ["/bin/sh", "-x", "/etc/keepalived/master.sh"], [/* 23 vars */]) = 0
75
+ 1533 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
76
+ 1533 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
77
+ 1533 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
78
+ 1533 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
79
+ 1533 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
80
+ 1533 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
81
+ 1533 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
82
+ 1533 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
83
+ 1533 open("/etc/keepalived/master.sh", O_RDONLY) = 3
84
+ 1534 execve("/usr/bin/systemctl", ["systemctl", "start", "httpd.service"], [/* 23 vars */]) = 0
85
+ ```

1

追記:実行権限

2017/06/27 06:12

投稿

TaichiYanagiya
TaichiYanagiya

スコア12218

answer CHANGED
@@ -4,4 +4,16 @@
4
4
  ```
5
5
  notify_master "/bin/sh /etc/keepalived/master.sh"
6
6
  notify_backup "/bin/sh /etc/keepalived/backup.sh"
7
- ```
7
+ ```
8
+
9
+ ---
10
+ **(2017/06/27 14:16) 追記**
11
+ 実行権限(x)が必要です。
12
+ `chmod +x master.sh` または `chmod u+x master.sh`
13
+
14
+ 実行権限の問題であれば、/bin/sh で実行できると思うのですが、ログを出してみるとどうでしょう。
15
+
16
+ ```
17
+ notify_master "/bin/sh -x /etc/keepalived/master.sh >/tmp/master.log 2>&1"
18
+ notify_backup "/bin/sh -x /etc/keepalived/backup.sh >/tmp/backup.log 2>&1"
19
+ ```