40 lines
944 B
Python
40 lines
944 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import logging
|
||
|
import os
|
||
|
import sys
|
||
|
import time
|
||
|
|
||
|
delay = 2
|
||
|
|
||
|
|
||
|
def restart_apache():
|
||
|
os.system("systemctl reload-or-restart apache2")
|
||
|
|
||
|
|
||
|
def run_monitor(filename):
|
||
|
while True:
|
||
|
if os.path.exists(filename):
|
||
|
logging.info("restarting apache")
|
||
|
restart_apache()
|
||
|
time.sleep(delay)
|
||
|
os.remove(filename)
|
||
|
time.sleep(delay)
|
||
|
|
||
|
|
||
|
def main():
|
||
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s: %(message)s')
|
||
|
if len(sys.argv) < 2:
|
||
|
raise Exception('No monitor filename')
|
||
|
monitor_filename = sys.argv[1]
|
||
|
monitor_dir = os.path.dirname(monitor_filename)
|
||
|
if not os.path.isdir(monitor_dir):
|
||
|
raise Exception(f'directory not exist: {monitor_dir}')
|
||
|
if not os.access(monitor_dir, os.W_OK):
|
||
|
raise Exception(f'directory not writable: {monitor_dir}')
|
||
|
run_monitor(monitor_filename)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|