diff --git a/gentoo/files/pgmon.cfg b/gentoo/files/pgmon.cfg index 3eaf6ab..610d85b 100644 --- a/gentoo/files/pgmon.cfg +++ b/gentoo/files/pgmon.cfg @@ -3,8 +3,7 @@ ## # Where to write/find the agent PID -#pid_file=/tmt/pgmon.pid -pid_file=/run/pgmon/pgmon.pid +#pid_file= ## # Agent communication settings @@ -12,7 +11,6 @@ pid_file=/run/pgmon/pgmon.pid # IPC socket #ipc_socket=/tmp/pgmon.sock -ipc_socket=/run/pgmon/pgmon.sock # IPC communication timeout (s) #ipc_timeout=10 diff --git a/gentoo/files/pgmon.openrc b/gentoo/files/pgmon.openrc index df9c946..c06a900 100644 --- a/gentoo/files/pgmon.openrc +++ b/gentoo/files/pgmon.openrc @@ -10,12 +10,12 @@ PID_FILE="/run/pgmon/${agent_name}.pid" LOG_FILE="/var/log/${agent_name}.log" SOCKET="/var/run/${agent_name}.socket" -command="/usr/bin/pgmon" -command_args="--server -c '$CONFIG_FILE' -l '$LOG_FILE' -p '$PID_FILE' -s '$SOCKET'" -command_user="zabbix:zabbix" - pidfile="$PID_FILE" +command_background="/usr/bin/pgmon" +command_args="--server -c '$CONFIG_FILE' -l '$LOG_FILE' -s '$SOCKET'" +command_user="zabbix:zabbix" + start_pre() { checkpath -d -m 0755 -o "${command_user}" "/run/pgmon" checkpath -d -m 0755 -o "${command_user}" "/var/log/pgmon" diff --git a/pgmon.py b/pgmon.py index 37b7574..d8848c9 100755 --- a/pgmon.py +++ b/pgmon.py @@ -129,15 +129,20 @@ def init_logging(config): # PID file handling # def write_pid_file(pid_file): - with open(pid_file, 'w') as f: - f.write("{}".format(os.getpid())) + if pid_file is not None: + with open(pid_file, 'w') as f: + f.write("{}".format(os.getpid())) def read_pid_file(pid_file): + if pid_file is None: + raise RuntimeError("No PID file specified") + with open(pid_file, 'r') as f: return int(f.read().strip()) def remove_pid_file(pid_file): - os.unlink(pid_file) + if pid_file is not None: + os.unlink(pid_file) # @@ -198,7 +203,7 @@ class Config: """ def __init__(self, args, read_metrics = True, read_clusters = True): # Set defaults - self.pid_file = 'pgmon.pid' # PID file + self.pid_file = None # PID file self.ipc_socket = 'pgmon.sock' # IPC socket self.ipc_timeout = 10 # IPC communication timeout (s)