Skip to content

Commit

Permalink
daemons: changed when/where the pidfile of daemons gets created
Browse files Browse the repository at this point in the history
  • Loading branch information
alaaeddineelamri committed Sep 17, 2021
1 parent 7525e02 commit 030b322
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 14 deletions.
8 changes: 5 additions & 3 deletions core/src/dird/dird.cc
Expand Up @@ -340,7 +340,11 @@ int main(int argc, char* argv[])

if (!test_config) { /* we don't need to do this block in test mode */
if (background) {
daemon_start();
if (daemon_start()) {
CreatePidFile(me->pid_directory, "bareos-dir",
GetFirstPortHostOrder(me->DIRaddrs));
exit(0);
}
InitStackDump(); /* grab new pid */
}
}
Expand All @@ -359,8 +363,6 @@ int main(int argc, char* argv[])

if (!test_config) { /* we don't need to do this block in test mode */
/* Create pid must come after we are a daemon -- so we have our final pid */
CreatePidFile(me->pid_directory, "bareos-dir",
GetFirstPortHostOrder(me->DIRaddrs));
ReadStateFile(me->working_directory, "bareos-dir",
GetFirstPortHostOrder(me->DIRaddrs));
}
Expand Down
8 changes: 5 additions & 3 deletions core/src/filed/filed.cc
Expand Up @@ -229,7 +229,11 @@ int main(int argc, char* argv[])
}

if (!foreground && !test_config) {
daemon_start();
if (daemon_start()) {
CreatePidFile(me->pid_directory, "bareos-fd",
GetFirstPortHostOrder(me->FDaddrs));
exit(0);
}
InitStackDump(); /* set new pid */
}

Expand Down Expand Up @@ -266,8 +270,6 @@ int main(int argc, char* argv[])
}

/* Maximum 1 daemon at a time */
CreatePidFile(me->pid_directory, "bareos-fd",
GetFirstPortHostOrder(me->FDaddrs));
ReadStateFile(me->working_directory, "bareos-fd",
GetFirstPortHostOrder(me->FDaddrs));
LoadFdPlugins(me->plugin_directory, me->plugin_names);
Expand Down
10 changes: 6 additions & 4 deletions core/src/lib/daemon.cc
Expand Up @@ -38,7 +38,7 @@

#if defined(HAVE_WIN32)

void daemon_start() { return; }
int daemon_start() { return; }

#else // !HAVE_WIN32

Expand Down Expand Up @@ -76,11 +76,12 @@ static void CloseNonStdFileDescriptors()
# endif
}

void daemon_start()
int daemon_start()
{
Dmsg0(900, "Enter daemon_start\n");

switch (fork()) {
int fork_result = fork();
switch (fork_result) {
case 0:
setsid();
umask(umask(0) | S_IWGRP | S_IROTH | S_IWOTH);
Expand All @@ -94,9 +95,10 @@ void daemon_start()
break;
}
default:
exit(0);
return fork_result;
}

Dmsg0(900, "Exit daemon_start\n");
return fork_result;
}
#endif /* defined(HAVE_WIN32) */
2 changes: 1 addition & 1 deletion core/src/lib/daemon.h
Expand Up @@ -21,6 +21,6 @@
#ifndef BAREOS_LIB_DAEMON_H_
#define BAREOS_LIB_DAEMON_H_

void daemon_start();
int daemon_start();

#endif // BAREOS_LIB_DAEMON_H_
8 changes: 5 additions & 3 deletions core/src/stored/stored.cc
Expand Up @@ -259,7 +259,11 @@ int main(int argc, char* argv[])
}

if (!foreground && !test_config) {
daemon_start(); /* become daemon */
if (daemon_start()) {
CreatePidFile(me->pid_directory, "bareos-sd",
GetFirstPortHostOrder(me->SDaddrs));
exit(0);
} /* become daemon */
InitStackDump(); /* pick up new pid */
}

Expand Down Expand Up @@ -289,8 +293,6 @@ int main(int argc, char* argv[])

MyNameIs(0, (char**)NULL, me->resource_name_); /* Set our real name */

CreatePidFile(me->pid_directory, "bareos-sd",
GetFirstPortHostOrder(me->SDaddrs));
ReadStateFile(me->working_directory, "bareos-sd",
GetFirstPortHostOrder(me->SDaddrs));
ReadCryptoCache(me->working_directory, "bareos-sd",
Expand Down

0 comments on commit 030b322

Please sign in to comment.