dhcpd6.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # -*- coding: utf-8 -*-
  2. from comar.service import *
  3. serviceType = "server"
  4. serviceDesc = _({"en": "DHCPv6 Daemon",
  5. "tr": "DHCPv6 Servisi"})
  6. serviceConf = "dhcpd6"
  7. MSG_NM_NOT_RUNNING = _({"en": "NetworkManager service is not running",
  8. "tr": "NetworkManager hizmeti çalışmıyor",
  9. })
  10. PIDFILE = "/run/dhcpd6.pid"
  11. TIMEOUT = config.get("TIMEOUT", 10)
  12. @synchronized
  13. def start():
  14. try:
  15. startDependencies("NetworkManager")
  16. # Prevent race condition between NM and dhcpd
  17. if run("/usr/bin/nm-online -q -t %s" % TIMEOUT) != 0:
  18. # NM is not running
  19. fail(MSG_NM_NOT_RUNNING)
  20. except:
  21. pass
  22. startService(command="/usr/sbin/dhcpd",
  23. args="-6 -cf %s %s %s" % (config.get("DHCPD_CONF", "/etc/dhcp/dhcpd.conf"), config.get("DHCPD_ARGS", ""), config.get("INTERFACES", "")),
  24. pidfile=PIDFILE,
  25. donotify=True)
  26. @synchronized
  27. def stop():
  28. stopService(pidfile=PIDFILE,
  29. donotify=True)
  30. def status():
  31. return isServiceRunning(PIDFILE)