actions: Add more action utilities

- Utilities for enabling, disabling, restarting and getting enabled
  status of a service.

- Currently they are based on systemd but they can be extended to work
  with sysvinit also.

- Enable and disable also synchronize state with sysvinit.
This commit is contained in:
Sunil Mohan Adapa 2015-05-27 22:45:18 +05:30
parent 1d3b179f6e
commit f2b4dca4eb

View File

@ -1,5 +1,3 @@
#!/usr/bin/python3
# -*- mode: python -*-
#
# This file is part of Plinth.
#
@ -18,7 +16,7 @@
#
"""
Python action utility functions
Python action utility functions.
"""
import subprocess
@ -39,3 +37,29 @@ def service_is_running(servicename):
running = True
break
return running
def service_is_enabled(service_name):
"""Check if service is enabled in systemd."""
try:
subprocess.check_output(['systemctl', 'is-enabled', service_name])
return True
except subprocess.CalledProcessError:
return False
def service_enable(service_name):
"""Enable and start a service in systemd and sysvinit using update-rc.d."""
subprocess.call(['systemctl', 'enable', service_name])
subprocess.call(['systemctl', 'start', service_name])
def service_disable(service_name):
"""Disable and stop service in systemd and sysvinit using update-rc.d."""
subprocess.call(['systemctl', 'stop', service_name])
subprocess.call(['systemctl', 'disable', service_name])
def service_restart(service_name):
"""Restart service with systemd."""
subprocess.call(['systemctl', 'restart', service_name])