diff options
| author | Jan Tuomi <jan-sebastian.tuomi@aalto.fi> | 2016-07-27 22:48:57 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan-sebastian.tuomi@aalto.fi> | 2016-07-27 22:48:57 +0300 |
| commit | 034c8dcf2f29f6429781f6c7533b275e50ca4329 (patch) | |
| tree | d18f31eab2ca2ca3bdc2eaef180c8196fd0def08 /radiodiodibot | |
| parent | a4af1c91a7196752d2fe8ccf7e5cbb1593e95f65 (diff) | |
Add option --daemon, still WIP
Diffstat (limited to 'radiodiodibot')
| -rwxr-xr-x | radiodiodibot | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/radiodiodibot b/radiodiodibot index 0d067dd..ec6aa07 100755 --- a/radiodiodibot +++ b/radiodiodibot @@ -5,6 +5,7 @@ import logging import signal import sys import threading +import os from project import botmanager from project import uptimeservice @@ -26,7 +27,6 @@ except ImportError: def emit(self, record): pass -logging.getLogger(__name__).addHandler(NullHandler()) # Read configs, unsuccessful reads are # silently ignored @@ -41,6 +41,7 @@ parser.add_argument("-U", "--shoutbox-api-url", help="Shoutbox API URL") parser.add_argument("-C", "--telegram-chat-id", help="Telegram Chat ID") parser.add_argument("-v", "--verbose", help="Verbose output", action="store_true") parser.add_argument("-i", "--interval", help="Delay between API update calls in seconds", type=int) +parser.add_argument("-d", "--daemon", help="Start process as a daemon", action="store_true") args = parser.parse_args() # Show verbose output with the -v option @@ -49,7 +50,25 @@ if args.verbose: else: logging_level = logging.WARNING -logging.basicConfig(level=logging_level, format="%(asctime)s %(levelname)s %(message)s") +# Start as a daemon if option is supplied +if args.daemon: + logging.warning("Forking process...") + fpid = os.fork() + if fpid != 0: + logging.warning("Started as daemon.") + sys.exit(0) + +formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s") +logging.getLogger().addHandler(NullHandler()) +fileLogger = logging.FileHandler("output.log") +fileLogger.setFormatter(formatter) + +consoleLogger = logging.StreamHandler() +consoleLogger.setFormatter(formatter) + +logging.getLogger().addHandler(fileLogger) +logging.getLogger().addHandler(consoleLogger) +logging.getLogger().setLevel(logging_level) # Try to import telepot # If not installed, inform user and fail gracefully |
