@@ -38,14 +38,15 @@ def name
38
38
end
39
39
40
40
it 'should create a pid file' do
41
- fork do
41
+ pid = fork do
42
42
subject . daemonize
43
43
sleep
44
44
end
45
45
46
46
wait_for_server_to_start
47
47
48
48
subject . kill
49
+ Process . wait ( pid )
49
50
end
50
51
51
52
it 'should redirect stdio to a log file' do
@@ -65,6 +66,7 @@ def name
65
66
expect ( log ) . to include ( 'simple puts' , 'STDERR.puts' , 'STDOUT.puts' )
66
67
67
68
server . kill
69
+ Process . wait ( pid )
68
70
end
69
71
70
72
it 'should change privilege' do
@@ -74,14 +76,13 @@ def name
74
76
end
75
77
76
78
_ , status = Process . wait2 ( pid )
77
-
78
79
expect ( status ) . to be_a_success
79
80
end
80
81
81
82
it 'should kill process in pid file' do
82
83
expect ( File . exist? ( subject . pid_file ) ) . to be_falsey
83
84
84
- fork do
85
+ pid = fork do
85
86
subject . daemonize
86
87
sleep
87
88
end
@@ -94,12 +95,12 @@ def name
94
95
subject . kill ( 1 )
95
96
end
96
97
97
- sleep ( 1 )
98
+ Process . wait ( pid )
98
99
expect ( File . exist? ( subject . pid_file ) ) . to be_falsey
99
100
end
100
101
101
102
it 'should force kill process in pid file' do
102
- fork do
103
+ pid = fork do
103
104
subject . daemonize
104
105
sleep
105
106
end
@@ -108,11 +109,12 @@ def name
108
109
109
110
subject . kill ( 0 )
110
111
112
+ Process . wait ( pid )
111
113
expect ( File . exist? ( subject . pid_file ) ) . to be_falsey
112
114
end
113
115
114
116
it 'should send kill signal if timeout' do
115
- fork do
117
+ pid = fork do
116
118
subject . daemonize
117
119
sleep
118
120
end
@@ -122,13 +124,14 @@ def name
122
124
pid = subject . pid
123
125
124
126
subject . kill ( 10 )
127
+ Process . wait ( pid )
125
128
126
129
expect ( File . exist? ( subject . pid_file ) ) . to be_falsey
127
130
expect ( Process . running? ( pid ) ) . to be_falsey
128
131
end
129
132
130
133
it "should restart" do
131
- fork do
134
+ pid = fork do
132
135
subject . on_restart { }
133
136
subject . daemonize
134
137
sleep 5
@@ -140,7 +143,8 @@ def name
140
143
TestServer . restart ( subject . pid_file )
141
144
end
142
145
143
- expect { sleep 0.1 while File . exist? ( subject . pid_file ) } . to take_less_then ( 20 )
146
+ Process . wait ( pid )
147
+ expect ( File . exist? ( subject . pid_file ) ) . to be_falsey
144
148
end
145
149
146
150
it "should ignore if no restart block specified" do
@@ -154,7 +158,7 @@ def name
154
158
end
155
159
156
160
it "should exit and raise if pid file already exist" do
157
- fork do
161
+ pid = fork do
158
162
subject . daemonize
159
163
sleep 5
160
164
end
@@ -164,6 +168,9 @@ def name
164
168
expect { subject . daemonize } . to raise_error ( PidFileExist )
165
169
166
170
expect ( File . exist? ( subject . pid_file ) ) . to be_truthy
171
+
172
+ subject . kill
173
+ Process . wait ( pid )
167
174
end
168
175
169
176
it "should raise if no pid file" do
0 commit comments