From aadc23f766d3bd0a4996c054fa31fc3b45cfafed Mon Sep 17 00:00:00 2001 From: Rodgger Date: Thu, 9 Feb 2023 08:23:35 -0500 Subject: [PATCH] =?UTF-8?q?servi=C3=A7o=20cnvrtd=20para=20systemd=20-=20cn?= =?UTF-8?q?vrtd.service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scripts/cnvrtd/cnvrtd.php | 12 +++++++- .../scripts/cnvrtd/cnvrtd.service | 30 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.service diff --git a/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.php b/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.php index c7ceaca..aab16a5 100644 --- a/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.php +++ b/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.php @@ -131,7 +131,17 @@ function GetDaemon($notDaemon) { exit(0); //success } - // posix_setsid(); + /* PIDFile SYSTEMD + * SYSTEMD irá monitorar esse pid para verificar se ainda está ativo + */ + $PIDFile = fopen( "/var/lock/subsys/cnvrtd.pid", "w+" ); + $pid = getmypid( ) + if( $pid == false ){ + exit( 1 ); + } + fwrite( $PIDFile, $pid); + fclose( $PIDFile ); + } function GetHelp() { diff --git a/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.service b/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.service new file mode 100644 index 0000000..8d2185b --- /dev/null +++ b/asterisk/var_lib_asterisk/scripts/cnvrtd/cnvrtd.service @@ -0,0 +1,30 @@ +# +# ExecStartPre +# If more than one command is specified, the +# commands are invoked sequentially in the +# order they appear in the unit file. If one +# of the commands fails (and is not prefixed +# with "-"), other lines are not executed, +# and the unit is considered failed. +# + +[Unit] +Description=File Converter - Simple IP + +[Service] +Type=forking + +# verifica se o serviço está rodando +ExecStartPre=/bin/bash -c '! /usr/bin/systemctl is-active --quiet cnvrtd.service' + +# Limpa pid em /var/lock/subsys/cnvrtd.pid +ExecStartPre=/bin/bash -c "echo > /var/lock/subsys/cnvrtd.pid" + +ExecStart=/var/lib/asterisk/scripts/cnvrtd/cnvrtd.php --log=/var/log/cnvrtd.log +PIDFile=/var/lock/subsys/cnvrtd.pid + +Restart=always +RestartSec=1 + +[Install] +WantedBy=multi-user.target