slurm-mailer
Slurm Job Status Notification Daemon
A tool for monitoring Slurm job status changes and sending email notifications when jobs transition between states. Changes are aggregated over a configurable time window before sending.
⚠️ Important Notice
This project is AI-generated. The code has not been thoroughly reviewed by a human developer for all edge cases, security implications, or production-readiness. Use at your own risk.
User-Space Notification
This tool operates entirely on the Slurm client side. No Slurm administrator privileges or configuration changes are required.
- Runs by polling
squeueandsacctlike any Slurm user can do - No modifications to
slurm.conf,sacct.conf, or admin partitions required - Can monitor only your own jobs, or all visible jobs if permissions allow
- No system-wide impact; runs as a regular daemon
How It Differs from Admin Notifications
| Admin System Notification | This Tool |
|---|---|
Requires slurm.conf modifications |
Runs as standalone daemon |
| Admin sets recipients | User configures their own email |
| Affects all users | Only monitors specified user's jobs |
| Requires restart of daemons | Runs independently |
| Site-wide policy | User-controlled |
Features
- Dual querying: Uses both
squeue(active jobs) andsacct(completed/failed jobs) - Change detection with aggregation window
- Rich HTML email with inline CSS (emoji-free)
- Configurable polling interval and aggregation window
- Aggregation of multiple changes before sending
- Status badge colors and labels
User-Space Benefits
- No Slurm admin required
- No system configuration changes
- Works on shared/HPC systems where users cannot modify config
- User controls who receives notifications
- Can monitor any user within permission limits
Installation
uv sync
# or install the wheel
uv pip install dist/slurm_mailer-0.1.0-py3-none-any.whl
Configuration
Copy config.ini and adjust the settings:
[smtp]
host = smtp.example.com
port = 587
tls = true
user = your_user
password = your_password
[email]
from = slurm-mailer@example.com
to = recipient@example.com
[slurm]
watch_all_users = false
aggregation_minutes = 10
poll_interval_seconds = 30
Usage
slurm-mailer
Or run from source:
uv run slurm-mailer
License
MIT
Metadata
Release files for slurm-mailer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| slurm_mailer-0.1.0.tar.gz | 11.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| slurm_mailer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.7 kB
Release files / slurm_mailer-0.1.0.tar.gz
| Download URL | slurm_mailer-0.1.0.tar.gz |
|---|---|
| Size | 11.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04016513c1be1767776a9cd437a10b1144351d982428ddf24c0cec732306a7e1
|
|
BLAKE2b-256 checksum How to use checksums |
872c6b4504d5df895947c846908e5a2008b9d48a23946ada44cceec5953f5da3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / slurm_mailer-0.1.0-py3-none-any.whl
| Download URL | slurm_mailer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
33f50d30f0d5413122dbb910ee44fa799eeda90a9d43e71ae15fea4d188f8617
|
|
BLAKE2b-256 checksum How to use checksums |
b34dd5af2815ea257ec9f8e3b4a2888d49c5394b23ad93c9a01a2b213ecca653
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log