40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
||
from comar.service import *
|
||
|
||
serviceType = "server"
|
||
serviceDesc = _({"en": "DHCP Daemon",
|
||
"tr": "DHCP Servisi"})
|
||
|
||
serviceConf = "dhcpd"
|
||
|
||
MSG_NM_NOT_RUNNING = _({"en": "NetworkManager service is not running",
|
||
"tr": "NetworkManager hizmeti çalışmıyor",
|
||
})
|
||
|
||
PIDFILE = "/run/dhcpd.pid"
|
||
TIMEOUT = config.get("TIMEOUT", 10)
|
||
|
||
@synchronized
|
||
def start():
|
||
try:
|
||
startDependencies("NetworkManager")
|
||
# Prevent race condition between NM and dhcpd
|
||
if run("/usr/bin/nm-online -q -t %s" % TIMEOUT) != 0:
|
||
# NM is not running
|
||
fail(MSG_NM_NOT_RUNNING)
|
||
except:
|
||
pass
|
||
|
||
startService(command="/usr/sbin/dhcpd",
|
||
args="-cf %s %s %s" % (config.get("DHCPD_CONF", "/etc/dhcp/dhcpd.conf"), config.get("DHCPD_ARGS", ""), config.get("INTERFACES", "")),
|
||
pidfile=PIDFILE,
|
||
donotify=True)
|
||
|
||
@synchronized
|
||
def stop():
|
||
stopService(pidfile=PIDFILE,
|
||
donotify=True)
|
||
|
||
def status():
|
||
return isServiceRunning(PIDFILE)
|