@@ -62,6 +62,7 @@ def __init__(
62
62
stderr_file = "/dev/null" ,
63
63
stderr_on_error_lines = 0 ,
64
64
core_pattern = None ,
65
+ templog_file = None
65
66
):
66
67
self .__cwd = cwd
67
68
self .__timeout = timeout
@@ -73,6 +74,7 @@ def __init__(
73
74
self .logger = logger .getChild (self .__class__ .__name__ )
74
75
self .__stdout_file = open (stdout_file , mode = 'wb' )
75
76
self .__stderr_file = open (stderr_file , mode = 'wb' )
77
+ self .__templog_file = templog_file
76
78
77
79
@property
78
80
def daemon (self ):
@@ -92,6 +94,12 @@ def stderr_file_name(self):
92
94
else :
93
95
return None
94
96
97
+ def __close_open_files (self ):
98
+ self .__stdout_file .close ()
99
+ self .__stderr_file .close ()
100
+ if self .__templog_file is not None :
101
+ self .__templog_file .close ()
102
+
95
103
def is_alive (self ):
96
104
return self .__daemon is not None and self .__daemon .running
97
105
@@ -112,6 +120,7 @@ def start(self):
112
120
113
121
if not self .is_alive ():
114
122
self .__check_before_fail ()
123
+ self .__close_open_files ()
115
124
raise DaemonError (
116
125
"Unexpectedly finished on start" ,
117
126
exit_code = self .__daemon .exit_code ,
@@ -162,6 +171,8 @@ def __check_before_end_stop(self, stop_type):
162
171
stderr = self .stderr_file_name ,
163
172
max_stderr_lines = self .__stderr_on_error_lines ,
164
173
)
174
+ else :
175
+ self .__close_open_files ()
165
176
166
177
def stop (self ):
167
178
if not self .__check_can_launch_stop ("stop" ):
0 commit comments