main: new option -A to run as daemon
This commit is contained in:
parent
5f89428562
commit
1db63600e5
@ -106,7 +106,7 @@ def attach(pid, socketfile):
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
def daemonize(socketfile=None):
|
def daemonize(socketfile=None, autoattach=True):
|
||||||
"""Detach the running process to run as a daemon
|
"""Detach the running process to run as a daemon
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -117,10 +117,13 @@ def daemonize(socketfile=None):
|
|||||||
try:
|
try:
|
||||||
pid = os.fork()
|
pid = os.fork()
|
||||||
if pid > 0:
|
if pid > 0:
|
||||||
import time
|
if autoattach:
|
||||||
os.waitpid(pid, 0)
|
import time
|
||||||
time.sleep(1)
|
os.waitpid(pid, 0)
|
||||||
sys.exit(attach(pid, socketfile))
|
time.sleep(1)
|
||||||
|
sys.exit(attach(pid, socketfile))
|
||||||
|
else:
|
||||||
|
sys.exit(0)
|
||||||
except OSError as err:
|
except OSError as err:
|
||||||
sys.stderr.write("Unable to fork: %s\n" % err)
|
sys.stderr.write("Unable to fork: %s\n" % err)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
@ -37,6 +37,9 @@ def main():
|
|||||||
default=["./modules/"],
|
default=["./modules/"],
|
||||||
help="directory to use as modules store")
|
help="directory to use as modules store")
|
||||||
|
|
||||||
|
parser.add_argument("-A", "--no-attach", action="store_true",
|
||||||
|
help="don't attach after fork")
|
||||||
|
|
||||||
parser.add_argument("-d", "--debug", action="store_true",
|
parser.add_argument("-d", "--debug", action="store_true",
|
||||||
help="don't deamonize, keep in foreground")
|
help="don't deamonize, keep in foreground")
|
||||||
|
|
||||||
@ -148,7 +151,7 @@ def main():
|
|||||||
# Daemonize
|
# Daemonize
|
||||||
if not args.debug:
|
if not args.debug:
|
||||||
from nemubot import daemonize
|
from nemubot import daemonize
|
||||||
daemonize(args.socketfile)
|
daemonize(args.socketfile, not args.no_attach)
|
||||||
|
|
||||||
# Signals handling
|
# Signals handling
|
||||||
def sigtermhandler(signum, frame):
|
def sigtermhandler(signum, frame):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user