A simple python package for creating daemon applications.
Project description
daemon-application
Documents
Description
A simple python package for creating daemon applications.
Notice:
- Runs the application in daemon mode on Linux only. On Windows, the application runs in foreground model.
Install
pip install daemon-application
Usage
Example for raw APIs
import time
import threading
import signal
from daemon_application import daemon_start
stopflag = False
def main():
def on_exit(*args, **kwargs):
with open("backgroud.log", "a", encoding="utf-8") as fobj:
print("process got exit signal...", file=fobj)
print(args, file=fobj)
print(kwargs, file=fobj)
global stopflag
stopflag = True
signal.signal(signal.SIGTERM, on_exit)
signal.signal(signal.SIGINT, on_exit)
while not stopflag:
time.sleep(1)
print(time.time())
if __name__ == "__main__":
print("start background application...")
daemon_start(main, "background.pid", True)
Example for DaemonApplication
import time
from daemon_application import DaemonApplication
class HelloApplication(DaemonApplication):
def main(self):
while True:
print("hello")
time.sleep(1)
controller = HelloApplication().get_controller()
if __name__ == "__main__":
controller()
Example for DaemonApplication adding new global options
import time
import click
from daemon_application import DaemonApplication
class HelloApplication(DaemonApplication):
def get_main_options(self):
options = [
click.option("-m", "--message", default="hello")
]
return options + super().get_main_options()
def main(self):
while True:
print(self.config["message"])
time.sleep(1)
controller = HelloApplication().get_controller()
if __name__ == "__main__":
controller()
The output of the command help that added a new global option
Usage: example.py [OPTIONS] COMMAND [ARGS]...
Options:
--pidfile TEXT pidfile file path.
--workspace TEXT Set running folder
--daemon / --no-daemon Run application in background or in foreground.
-c, --config TEXT Config file path. Application will search config
file if this option is missing. Use sub-command
show-config-fileapaths to get the searching tactics.
-m, --message TEXT
--help Show this message and exit.
Commands:
restart Restart Daemon application.
show-config-filepaths Print out the config searching paths.
start Start daemon application.
stop Stop daemon application.
Release
v0.5.3
- Add DaemonApplication.load_config, so that the application can be called without click.
v0.5.2
- Add global options: loglevel, logfile, logfmt.
- Update default_config override mechanism.
v0.4.4
- Fix the problem in sub-command stop.
v0.4.3
- Deps on pyyaml.
v0.4.2
- Remove a print() statement.
v0.4.1
- Fix documents URLs.
v0.4.0
- Remove fastutils deps.
- Add
--config
global command option for DaemonApplication. - Provide a way to override the global options for subclass of DaemonApplication.
- The sub-command
restart
will do juststart
if the old application is not running or crashed. - Use gitee.com source code hosting service.
v0.3.3
- Fix show-config-filepaths.
v0.3.2
- Add click deps in requirements.txt
v0.3.1
- Add DaemonApplication.
v0.3.0
- New wrapper.
v0.2.1
- Old releases.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for daemon_application-0.5.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3320ea8013038f40146242c085f58ecd301e9c66b35437ddde46418167dd957d |
|
MD5 | 75001e79876b62a87f6f15e8011d8f70 |
|
BLAKE2b-256 | 245c9961439c93f49cdefbc0b97c1ffb07d61fb6f56704c671a494d6f41bf62c |