回答編集履歴

2

追記: strace

2017/06/27 06:13

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -36,4 +36,136 @@
36
36
 
37
37
  ```
38
38
 
39
+ ---
39
40
 
41
+ **(2017/06/27 15:12) 追記**
42
+
43
+ 同じ環境ですが、問題なく実行できました。
44
+
45
+ こちらでは再現できないので、何とも言えませんが、strace でトレースすると何か違いがあるかもしれません。
46
+
47
+
48
+
49
+ ```
50
+
51
+ [root]# strace -f -e open,execve -o /tmp/strace.log /usr/sbin/keepalived -D
52
+
53
+
54
+
55
+ (/bin/sh 実行箇所を抜粋)
56
+
57
+
58
+
59
+ 1522 open("/bin/sh", O_RDONLY) = 15
60
+
61
+ 1521 open("/etc/keepalived/keepalived.conf", O_RDONLY) = 10
62
+
63
+ 1521 open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 10
64
+
65
+ 1521 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 10
66
+
67
+ 1521 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 10
68
+
69
+ 1521 open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 10
70
+
71
+ 1521 open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 10
72
+
73
+ 1521 open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 10
74
+
75
+ 1523 open("/dev/null", O_RDWR) = 15
76
+
77
+ 1521 open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 10
78
+
79
+ 1524 execve("/bin/sh", ["sh", "-c", "/bin/sh -x /etc/keepalived/backu"...], [/* 24 vars */]) = 0
80
+
81
+ 1524 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
82
+
83
+ 1524 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
84
+
85
+ 1524 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
86
+
87
+ 1524 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
88
+
89
+ 1524 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
90
+
91
+ 1524 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
92
+
93
+ 1524 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
94
+
95
+ 1524 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
96
+
97
+ 1525 open("/tmp/backup.log", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
98
+
99
+ 1525 execve("/bin/sh", ["/bin/sh", "-x", "/etc/keepalived/backup.sh"], [/* 23 vars */]) = 0
100
+
101
+ 1525 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
102
+
103
+ 1525 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
104
+
105
+ 1525 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
106
+
107
+ 1525 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
108
+
109
+ 1525 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
110
+
111
+ 1525 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
112
+
113
+ 1525 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
114
+
115
+ 1525 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
116
+
117
+ 1525 open("/etc/keepalived/backup.sh", O_RDONLY) = 3
118
+
119
+ 1526 execve("/usr/bin/systemctl", ["systemctl", "stop", "httpd.service"], [/* 23 vars */]) = 0
120
+
121
+ (中略)
122
+
123
+ 1522 open("/bin/sh", O_RDONLY) = 14
124
+
125
+ 1531 open("/dev/null", O_RDWR) = 14
126
+
127
+ 1532 execve("/bin/sh", ["sh", "-c", "/bin/sh -x /etc/keepalived/maste"...], [/* 24 vars */]) = 0
128
+
129
+ 1532 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
130
+
131
+ 1532 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
132
+
133
+ 1532 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
134
+
135
+ 1532 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
136
+
137
+ 1532 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
138
+
139
+ 1532 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
140
+
141
+ 1532 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
142
+
143
+ 1532 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
144
+
145
+ 1533 open("/tmp/master.log", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
146
+
147
+ 1533 execve("/bin/sh", ["/bin/sh", "-x", "/etc/keepalived/master.sh"], [/* 23 vars */]) = 0
148
+
149
+ 1533 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
150
+
151
+ 1533 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3
152
+
153
+ 1533 open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
154
+
155
+ 1533 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
156
+
157
+ 1533 open("/dev/tty", O_RDWR|O_NONBLOCK) = -1 ENXIO (No such device or address)
158
+
159
+ 1533 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
160
+
161
+ 1533 open("/proc/meminfo", O_RDONLY|O_CLOEXEC) = 3
162
+
163
+ 1533 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3
164
+
165
+ 1533 open("/etc/keepalived/master.sh", O_RDONLY) = 3
166
+
167
+ 1534 execve("/usr/bin/systemctl", ["systemctl", "start", "httpd.service"], [/* 23 vars */]) = 0
168
+
169
+ ```
170
+
171
+

1

追記:実行権限

2017/06/27 06:12

投稿

TaichiYanagiya
TaichiYanagiya

スコア12146

test CHANGED
@@ -11,3 +11,29 @@
11
11
  notify_backup "/bin/sh /etc/keepalived/backup.sh"
12
12
 
13
13
  ```
14
+
15
+
16
+
17
+ ---
18
+
19
+ **(2017/06/27 14:16) 追記**
20
+
21
+ 実行権限(x)が必要です。
22
+
23
+ `chmod +x master.sh` または `chmod u+x master.sh`
24
+
25
+
26
+
27
+ 実行権限の問題であれば、/bin/sh で実行できると思うのですが、ログを出してみるとどうでしょう。
28
+
29
+
30
+
31
+ ```
32
+
33
+ notify_master "/bin/sh -x /etc/keepalived/master.sh >/tmp/master.log 2>&1"
34
+
35
+ notify_backup "/bin/sh -x /etc/keepalived/backup.sh >/tmp/backup.log 2>&1"
36
+
37
+ ```
38
+
39
+