simple CLI utility to run other programs periodically as daemon without cron
Project description
Daemon Loop
Daemon loop is simple and clean CLI utility to run programs periodically.
It's better alternative to running commands like:
while true; do date >> date.log; sleep 5; done
(or even running such commands in screen/tmux sessions)
Installation
pip3 install daemon-loop
Usage
usage: loop [-h] [-n N] [-p PERIOD] [--log FILENAME] [-e] [-v] [-d]
command [command ...]
Run command in loop (with features)
positional arguments:
command command with arguments
optional arguments:
-h, --help show this help message and exit
-n N Run N times and exit (default: 0 = infinite)
-p PERIOD, --period PERIOD
Run every N seconds (default: 60)
--log FILENAME Write command stdout to this file
-e, --err Write command stderr to logfile)
-v, --verbose Write loop technical info to logfile)
-d, --daemon Work as daemon
Example usage
Simple and almost useless - run date
every second until Ctrl-C:
$ loop date
Sun Dec 20 05:18:21 +07 2020
Sun Dec 20 05:19:21 +07 2020
Sun Dec 20 05:20:21 +07 2020
^C
Run date +%s
(print unixtime) 3 times every 10 seconds and quit
$ loop -p 10 -n 3 -- date +%s
1608416485
1608416495
1608416505
And now something more useful - make our date
program a daemon!
$ loop -dvep 10 --log /tmp/loop.log -- date +%s
$ pidof -x loop
25934
-d
: run as daemon-v
: include technical info about time of start/stop, status code and daemon pid-e
(--err
): include stderr to logfile-p
(--period
): period is 10 seconds--log
: logfile
log file will look like this:
# 2020-12-20 05:39:01 my pid: 25934 run: date +%s
1608417541
# 2020-12-20 05:39:01 finished with status 0
# 2020-12-20 05:39:11 my pid: 25934 run: date +%s
1608417551
# 2020-12-20 05:39:11 finished with status 0
Caveats
If --daemon
used, loop will chdir to '/'. Loop will automatically adjust path to logfile and executable, but you should care about other parameters. For example, command loop -d -- touch myfile
started from user home will touch /myfile
(in root), and most likely will fail.
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 Distributions
Built Distribution
File details
Details for the file daemon_loop-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: daemon_loop-0.0.3-py3-none-any.whl
- Upload date:
- Size: 3.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 927a5093718abe65d85049fdcbc9733c730c4a00bb41c5c868357216da91881b |
|
MD5 | d07479bd96a524377e4990fee83e78fa |
|
BLAKE2b-256 | 00e4f2d3e492ed1ad1c102669b8569e6beb31c461e1745114a6d77fea1cb6fe4 |