From: Paweł Szewczyk
Date: Mon, 5 Mar 2018 11:59:54 +0000 (+0100)
Subject: Remove daemonization
X-Git-Tag: accepted/tizen/unified/20180426.145755~8^2
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94a707f6ecd68a9ef1c4e4ecbf519849fedad6b7;p=sdk%2Ftarget%2Fsdbd.git
Remove daemonization
It's not necessary to fork the daemon manually, we have systemd for
managing that. The forking also may affect the sd_listen_ api.
Change-Id: Ia067e64a31787ee87f1b150959765aff40e9d007
Signed-off-by: Paweł Szewczyk
---
diff --git a/packaging/sdbd.service b/packaging/sdbd.service
index 8f65db9..eb49efe 100644
--- a/packaging/sdbd.service
+++ b/packaging/sdbd.service
@@ -4,7 +4,7 @@ Description=sdbd
[Service]
#If necessary, Put Environment variable settings in a file like below
#ExecStartPre=/bin/bash -c "/bin/echo 'SDB_TRACE=all SDBD_LOG_PATH=/tmp' >> /tmp/.sdbdlog.conf"
-Type=forking
+Type=simple
PIDFile=/tmp/.sdbd.pid
RemainAfterExit=yes
ExecStart=/usr/sbin/sdbd
diff --git a/packaging/sdbd_device.service b/packaging/sdbd_device.service
index 38851a8..080e0ed 100644
--- a/packaging/sdbd_device.service
+++ b/packaging/sdbd_device.service
@@ -6,7 +6,7 @@ After=tmp.mount
[Service]
User=sdk
Group=sdk
-Type=forking
+Type=simple
#location of SDBD log file
#If necessary, Put Environment variable settings in a file like below
#ExecStartPre=/bin/bash -c "/bin/echo 'SDB_TRACE=all SDBD_LOG_PATH=/tmp' >> /tmp/.sdbdlog.conf"
diff --git a/packaging/sdbd_device_tv.service b/packaging/sdbd_device_tv.service
index 416c818..88d3a08 100644
--- a/packaging/sdbd_device_tv.service
+++ b/packaging/sdbd_device_tv.service
@@ -4,7 +4,7 @@ Requires=tizen-system-env.service
After=tmp.mount
[Service]
-Type=forking
+Type=simple
#location of SDBD log file
#Environment=SDBD_LOG_PATH=/tmp
#If necessary, Put Environment variable settings in a file like below
diff --git a/packaging/sdbd_emulator.service b/packaging/sdbd_emulator.service
index e6a4d3e..9b87f40 100644
--- a/packaging/sdbd_emulator.service
+++ b/packaging/sdbd_emulator.service
@@ -7,7 +7,7 @@ After=tmp.mount dbus.service
[Service]
User=sdk
Group=sdk
-Type=forking
+Type=simple
Environment=DISPLAY=:0
PIDFile=/tmp/.sdbd.pid
RemainAfterExit=yes
diff --git a/packaging/sdbd_emulator_tv.service b/packaging/sdbd_emulator_tv.service
index 634974c..3dc42e3 100644
--- a/packaging/sdbd_emulator_tv.service
+++ b/packaging/sdbd_emulator_tv.service
@@ -5,7 +5,7 @@ After=tmp.mount dbus.service
#DefaultDependencies=false
[Service]
-Type=forking
+Type=simple
#location of SDBD log file
#Environment=SDBD_LOG_PATH=/tmp
#If necessary, Put Environment variable settings in a file like below
diff --git a/packaging/sdbd_tcp.service b/packaging/sdbd_tcp.service
index 7ff330d..6871f29 100644
--- a/packaging/sdbd_tcp.service
+++ b/packaging/sdbd_tcp.service
@@ -5,7 +5,7 @@ After=default.target
[Service]
User=sdk
Group=sdk
-Type=forking
+Type=simple
Environment=DISPLAY=:0
#If necessary, Put Environment variable settings in a file like below
#ExecStartPre=/bin/bash -c "/bin/echo 'SDB_TRACE=all SDBD_LOG_PATH=/tmp' >> /tmp/.sdbdlog.conf"
diff --git a/src/sdb.c b/src/sdb.c
index 079d9fc..0cd265b 100644
--- a/src/sdb.c
+++ b/src/sdb.c
@@ -1225,43 +1225,6 @@ void start_device_log(void)
sdb_close(fd);
}
-int daemonize(void) {
-
- // set file creation mask to 0
- umask(0);
-
- switch (fork()) {
- case -1:
- return -1;
- case 0:
- break;
- default:
- _exit(0);
- }
-#ifdef SDB_PIDPATH
- char* tmppath = NULL;
- tmppath = realpath(SDB_PIDPATH, NULL);
- if (tmppath == NULL && errno == ENOENT) {
- FILE *f = fopen(SDB_PIDPATH, "w");
-
- if (f != NULL) {
- fprintf(f, "%d\n", getpid());
- fclose(f);
- }
- } else {
- D("sdbd: %s file is existed. It might not work properly.\n", SDB_PIDPATH);
- free(tmppath);
- }
-#endif
- if (setsid() == -1)
- return -1;
-
- if (chdir("/") < 0)
- D("sdbd: unable to change working directory to /\n");
-
- return 0;
-}
-
/* Constructs a local name of form tcp:port.
* target_str points to the target string, it's content will be overwritten.
* target_size is the capacity of the target string.
@@ -2302,9 +2265,6 @@ int main(int argc, char **argv)
return EXIT_FAILURE;
}
- if (daemonize() < 0)
- fatal("daemonize() failed: errno:%d", errno);
-
D("Handling main()\n");
//sdbd will never die on emulator!