winlin

quit child process when fork failed.

@@ -137,13 +137,13 @@ int SrsProcess::start() @@ -137,13 +137,13 @@ int SrsProcess::start()
137 if ((stdout_fd = ::open(stdout_file.c_str(), flags, mode)) < 0) { 137 if ((stdout_fd = ::open(stdout_file.c_str(), flags, mode)) < 0) {
138 ret = ERROR_ENCODER_OPEN; 138 ret = ERROR_ENCODER_OPEN;
139 fprintf(stderr, "open process stdout %s failed. ret=%d", stdout_file.c_str(), ret); 139 fprintf(stderr, "open process stdout %s failed. ret=%d", stdout_file.c_str(), ret);
140 - return ret; 140 + exit(ret);
141 } 141 }
142 142
143 if (dup2(stdout_fd, STDOUT_FILENO) < 0) { 143 if (dup2(stdout_fd, STDOUT_FILENO) < 0) {
144 ret = ERROR_ENCODER_DUP2; 144 ret = ERROR_ENCODER_DUP2;
145 srs_error("dup2 process stdout failed. ret=%d", ret); 145 srs_error("dup2 process stdout failed. ret=%d", ret);
146 - return ret; 146 + exit(ret);
147 } 147 }
148 } 148 }
149 149
@@ -156,13 +156,13 @@ int SrsProcess::start() @@ -156,13 +156,13 @@ int SrsProcess::start()
156 if ((stderr_fd = ::open(stderr_file.c_str(), flags, mode)) < 0) { 156 if ((stderr_fd = ::open(stderr_file.c_str(), flags, mode)) < 0) {
157 ret = ERROR_ENCODER_OPEN; 157 ret = ERROR_ENCODER_OPEN;
158 fprintf(stderr, "open process stderr %s failed. ret=%d", stderr_file.c_str(), ret); 158 fprintf(stderr, "open process stderr %s failed. ret=%d", stderr_file.c_str(), ret);
159 - return ret; 159 + exit(ret);
160 } 160 }
161 161
162 if (dup2(stderr_fd, STDERR_FILENO) < 0) { 162 if (dup2(stderr_fd, STDERR_FILENO) < 0) {
163 ret = ERROR_ENCODER_DUP2; 163 ret = ERROR_ENCODER_DUP2;
164 srs_error("dup2 process stderr failed. ret=%d", ret); 164 srs_error("dup2 process stderr failed. ret=%d", ret);
165 - return ret; 165 + exit(ret);
166 } 166 }
167 } 167 }
168 168