diff --git a/confs/systemd/raspisms.service b/confs/systemd/raspisms.service index 28a583d..b91e8e8 100644 --- a/confs/systemd/raspisms.service +++ b/confs/systemd/raspisms.service @@ -11,6 +11,7 @@ ExecStart=/usr/share/raspisms/bin/start.sh ExecStop=/usr/share/raspisms/bin/stop.sh WorkingDirectory=/usr/share/raspisms Restart=on-failure +RestartSec=5 [Install] WantedBy=multi-user.target diff --git a/controllers/internals/LinkShortener.php b/controllers/internals/LinkShortener.php index 296d116..1f11101 100644 --- a/controllers/internals/LinkShortener.php +++ b/controllers/internals/LinkShortener.php @@ -18,7 +18,7 @@ use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; /** - * Mailing class. + * Link shortner class. */ class LinkShortener { diff --git a/daemons/AbstractDaemon.php b/daemons/AbstractDaemon.php index 9ff146f..79b86e5 100644 --- a/daemons/AbstractDaemon.php +++ b/daemons/AbstractDaemon.php @@ -153,10 +153,12 @@ abstract class AbstractDaemon //Really start the daemon $this->on_start(); + try { while ($this->is_running) { + pcntl_signal_dispatch(); //Call dispatcher for signals $this->run(); } @@ -164,6 +166,7 @@ abstract class AbstractDaemon catch (\Throwable $t) { $this->logger->critical('Exception : ' . $t->getMessage() . ' in ' . $t->getFile() . ' line ' . $t->getLine()); + $exit_code = $t->getCode() ?: 1; } //Stop the daemon @@ -174,6 +177,8 @@ abstract class AbstractDaemon { unlink($this->pid_dir . '/' . $this->name . '.pid'); } + + exit($exit_code ?? 0); } /**