Skip to main content

cronvice

maintain your programs running under SCREEN using AT job scheduler

Example

 # example
cronvice --help

Installation

# you need the scheduler
# sudo  apt install at # NOT HERE
sudo apt install crontab
# you nee the code (anti PEP 668 way)
pip3 install cronvice

All scripts must be in ~/.myservice/anyname/tag

  • where ~/.myservice is the S-PATH, path to scripts structure
  • anyname - can be number of different subfolders
  • tag must be a executable script with a uniqe name in all ~/.myservice
  • ~/.config/cronvice/cfg.json - contains the S-PATH ("services")
  • without a parameter, interactive tui is run, quit it with .q

Usage

Harmless calls

cris l
cris t syncthing
cris p syncthing
cris c syncthing

Enter to screen enviroment when running

cris e syncthing
  • r(un)
  • a(dd)
  • d(elete)
  • e(nter)
  • c(omment show)
  • t(ime show)
  • p(ath show)
  • l(ist cron)
  • x (block service call with impossible timestamp)

Important services

PI

  • inet/apswitch
  • inet/piaddr.py
  • warning/lowdisk
  • hwdevs/tele012ntc (technic)
  • image/flashcam8000
  • image/flashcam5000

BUGS

  • crashes when no crontab defined
  • DATE MUST BE `Sat 12 Apr 17:09:55 CEST 2025`
    • NOT `Sat Apr 12 15:09:39 UTC 2025`
    • use install.me script to repair

Appendix

these are comments for using uv and uvx.... this is new stuff

New workflow with environments

Workflow

  • ./distcheck.sh (no pip3 inside)

    • if twine{.verbatim} not present, uv tool install --force twine
    • same with uv tool install --force bump2version
  • uv tool install --upgrade cronvice and if hidden errors:

    • uv tool install --upgrade cronvice==0.1.31 force to reveal
  • NEVERTHELESS, environment is needed

    • make ~/.venv
    • cd ~/.venv
    • uv venv myservicenv and it is in this user folder.
    • ANY USE NEEDS source ~/.venv/myservicenv/bin/activate
    • All stuff needs to be installed via uv: like uv pip install fire
    • When all is installed, source ...activate is run before python call
      • which works for tele01 that calls te01.py
      • that has normal shebang
  • PROBLEM for influx_chrony

    • no idea now...
  • NO PROBLEM telegrf, only telegraf needs to get installed

    Using local venv is even better

    uv venv creates local .venv in the project, see more and more about lock

Hybrid shebang

two cases with different environemnts are hard

#!/bin/bash
#myservice_description: disk and ntp to INFLUX

"""" 2>/dev/null
# BASH CODE STARTS HERE

echo "Hello world from Bash!"
sleep 1
if [ -e "$HOME/.venv/myservicenv/bin/activate" ]; then
 source  $HOME/.venv/myservicenv/bin/activate
 echo i... myservicenev is activated
else
 echo i... not activated
fi
sleep 2
# BASH CODE ENDS HERE
/usr/bin/env python3 $0
exit
"""


#Python code goes here
"""
...
PEP668  UV UVX.... I dont know how to use environment....
"""
import fire
import subprocess as sp
import socket

if __name__=="__main__":
    fire.Fire( main )

Metadata

Release files for cronvice 0.1.62

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cronvice 0.1.62
File Size Uploaded Provenance Actions
cronvice-0.1.62.tar.gz 41.0 kB Without provenance Details for cronvice-0.1.62.tar.gz

Release files / cronvice-0.1.62.tar.gz

Download URL cronvice-0.1.62.tar.gz
Size 41.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2b40bbd5f0a79ba5a71aa3cf68626c462c04aba0fe1ffcc9895811238d7a6146
BLAKE2b-256 checksum
How to use checksums
b7a286a1857e3c66e76360e8714d9c5932f1bf23655cc66907a3eaf835cde961
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Security for cronvice 0.1.62

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.62 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page