mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	Changed shebang to point to python3 as per documentation the service does not work with python2
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import argparse
 | 
						|
import logging
 | 
						|
import os
 | 
						|
import sys
 | 
						|
import threading
 | 
						|
 | 
						|
import LibreNMS
 | 
						|
 | 
						|
from logging import info
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    parser = argparse.ArgumentParser(description='LibreNMS Service - manages polling and other periodic processes')
 | 
						|
    parser.add_argument('-g', '--group', type=int, help="Set the poller group for this poller")
 | 
						|
    parser.add_argument('-v', '--verbose', action='count', help="Show verbose output.")
 | 
						|
    parser.add_argument('-d', '--debug', action="store_true", help="Show debug output.")
 | 
						|
    parser.add_argument('-m', '--multiple', action="store_true", help="Allow multiple instances of the service.")
 | 
						|
    parser.add_argument('-t', '--timestamps', action="store_true", help="Include timestamps in the logs (not normally needed for syslog/journald")
 | 
						|
 | 
						|
    args = parser.parse_args()
 | 
						|
 | 
						|
    if args.timestamps:
 | 
						|
        logging.basicConfig(format='%(asctime)s %(threadName)s(%(levelname)s):%(message)s')
 | 
						|
    else:
 | 
						|
        logging.basicConfig(format='%(threadName)s(%(levelname)s):%(message)s')
 | 
						|
 | 
						|
    if args.verbose:
 | 
						|
        logging.getLogger().setLevel(logging.INFO)
 | 
						|
 | 
						|
    if args.debug:
 | 
						|
        logging.getLogger().setLevel(logging.DEBUG)
 | 
						|
 | 
						|
    info("Configuring LibreNMS service")
 | 
						|
    try:
 | 
						|
        service = LibreNMS.Service()
 | 
						|
    except Exception as e:
 | 
						|
        # catch any initialization errors and print the message instead of a stack trace
 | 
						|
        print(e)
 | 
						|
        sys.exit(2)
 | 
						|
 | 
						|
    service.config.single_instance = args.multiple
 | 
						|
 | 
						|
    if args.group:
 | 
						|
        service.config.group = [ args.group ]
 | 
						|
 | 
						|
    info('Entering main LibreNMS service loop on {}/{}...'.format(os.getpid(), threading.current_thread().name))
 | 
						|
    service.start()
 |