ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ# coding=utf-8 # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import os import errno PID_FILE = '/var/run/lvestats.pid' RUNNING = 0 STOPPED = 1 DEAD = 2 status_description = { RUNNING: "Server is running", STOPPED: "Server is not running, Use 'service lvestats start' command to start it", DEAD: "lvestats server is dead but pid file exists. Use 'service lvestats restart' command to restart it" } def check_server_status(): """ Read pid from file. If file is not exists, then server is stopped Send kill signal 0 to check if process exists. Return status. From http://linux.die.net/man/2/kill : "If sig is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID." errno.ESRCH == "No such process" :return: """ try: with open(PID_FILE, encoding='utf-8') as pid_file: pid = pid_file.readline().strip() except (IOError, OSError): return STOPPED else: try: os.kill(int(pid), 0) except OSError as e: if e.errno == errno.ESRCH: return DEAD return RUNNING