diff options
author | Mark Spencer <markster@digium.com> | 2003-10-16 10:27:41 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2003-10-16 10:27:41 +0000 |
commit | 084ce330ff895c5e01270c73fc060d38d0027e16 (patch) | |
tree | 32679c0836203a47bdeb433c5f4eb52c10dc4385 /asterisk.c | |
parent | f59f259586191e65ab44b0d9144a5dec078afacd (diff) |
Report proper pid when forking
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1634 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'asterisk.c')
-rwxr-xr-x | asterisk.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/asterisk.c b/asterisk.c index ac7173f4f..f419ac5c4 100755 --- a/asterisk.c +++ b/asterisk.c @@ -1351,18 +1351,15 @@ int main(int argc, char *argv[]) ast_log(LOG_WARNING, "Unable to open pid file '%s': %s\n", (char *)ast_config_AST_PID, strerror(errno)); if (!option_verbose && !option_debug && !option_nofork && !option_console) { -#if 1 daemon(0,0); -#else - pid = fork(); - if (pid < 0) { - ast_log(LOG_ERROR, "Unable to fork(): %s\n", strerror(errno)); - printf(term_quit()); - exit(1); - } - if (pid) - exit(0); -#endif + /* Blindly re-write pid file since we are forking */ + unlink((char *)ast_config_AST_PID); + f = fopen((char *)ast_config_AST_PID, "w"); + if (f) { + fprintf(f, "%d\n", getpid()); + fclose(f); + } else + ast_log(LOG_WARNING, "Unable to open pid file '%s': %s\n", (char *)ast_config_AST_PID, strerror(errno)); } ast_makesocket(); |