Skip to main content

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 squeue and sacct like 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) and sacct (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)

Source distribution for slurm-mailer 0.1.0
File Size Uploaded
slurm_mailer-0.1.0.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for slurm-mailer 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

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