35 lines
		
	
	
		
			971 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			971 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#! /usr/bin/env python3
 | 
						|
 | 
						|
import os
 | 
						|
import sys
 | 
						|
 | 
						|
from string import Template
 | 
						|
from subprocess import check_call
 | 
						|
 | 
						|
EXEC       = 'system-status.py'
 | 
						|
SERVICE    = 'system-status.service'
 | 
						|
SYSTEM_DIR = '/etc/systemd/system'
 | 
						|
 | 
						|
CURRENT_DIR      = os.path.dirname(os.path.realpath(__file__))
 | 
						|
EXEC_PATH        = os.path.join(CURRENT_DIR, EXEC)
 | 
						|
SERVICE_TEMPLATE = os.path.join(CURRENT_DIR, SERVICE)
 | 
						|
SERVICE_FILE     = os.path.join(SYSTEM_DIR, SERVICE)
 | 
						|
PYTHON           = sys.executable
 | 
						|
EXEC_START       = f'{PYTHON} {EXEC}'
 | 
						|
 | 
						|
with open(SERVICE_TEMPLATE) as f:
 | 
						|
    serviceTemplate = Template(f.read())
 | 
						|
 | 
						|
serviceFile = serviceTemplate.substitute(
 | 
						|
    workingDirectory=CURRENT_DIR,
 | 
						|
    execStart=EXEC_START
 | 
						|
)
 | 
						|
 | 
						|
with open(SERVICE_FILE, 'w') as f:
 | 
						|
    f.write(serviceFile)
 | 
						|
 | 
						|
check_call(['systemctl', 'daemon-reload'])
 | 
						|
check_call(['systemctl', 'enable', '--no-pager', SERVICE])
 | 
						|
check_call(['systemctl', 'restart', '--no-pager', SERVICE])
 | 
						|
check_call(['systemctl', 'status', '--no-pager', SERVICE])
 |