51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
from comar.service import *
|
||
import os
|
||
|
||
serviceType = "server"
|
||
serviceDefault = "on"
|
||
serviceDesc = _({"en": "CUPS Printer Server",
|
||
"tr": "CUPS Yazıcı Sunucusu"})
|
||
serviceConf = "cups"
|
||
|
||
PIDFILE = "/run/cups/cupsd.pid"
|
||
|
||
@synchronized
|
||
def start():
|
||
# FIXME: After avahi before hal
|
||
# startDependencies("avahi")
|
||
|
||
# Load ppdev and lp drivers if wanted
|
||
if config.get("LOAD_LP_MODULE") == "yes":
|
||
os.system("/sbin/modprobe -q lp")
|
||
os.system("/sbin/modprobe -q ppdev")
|
||
|
||
startService(command="/usr/sbin/cupsd",
|
||
donotify=True)
|
||
os.system("pidof -o %PPID /usr/sbin/cupsd > " + PIDFILE)
|
||
|
||
# Tell udevd to replay printer events
|
||
# One for low-level usb
|
||
os.system("udevadm trigger --subsystem-match=usb \
|
||
--attr-match=bInterfaceClass=07 \
|
||
--attr-match=bInterfaceSubClass=01 \
|
||
--action=add")
|
||
# One for usblp backend
|
||
os.system("udevadm trigger --subsystem-match=usb \
|
||
--property-match=DEVNAME=\"/dev/usb/lp*\" \
|
||
--action=add")
|
||
|
||
|
||
@synchronized
|
||
def reload():
|
||
if os.path.exists(PIDFILE):
|
||
# 1 is SIGHUP
|
||
os.kill(int(open(PIDFILE, "r").read().strip()), 1)
|
||
|
||
@synchronized
|
||
def stop():
|
||
stopService(pidfile=PIDFILE, donotify=True)
|
||
if os.path.isfile(PIDFILE): os.unlink(PIDFILE)
|
||
|
||
def status():
|
||
return isServiceRunning(pidfile=PIDFILE)
|