# jobmon-slurm: Enhanced Universal SLURM Job Monitor
[](https://badge.fury.io/py/jobmon-slurm)
[](https://www.python.org/downloads/)
A robust, user-friendly SLURM job monitoring utility that handles job name truncation, detects job completion status, and provides intelligent feedback for HPC environments.
## ๐ Quick Start
```bash
# Install (no admin required)
pip install --user jobmon-slurm
# Monitor all your jobs
jm
# Monitor specific job pattern (handles SLURM truncation)
jm dual_env_audit
# Monitor specific job ID
jm 41005547
# Quiet mode
jq pattern
# Debug mode for troubleshooting
jm -d pattern
```
## โจ Features
### Smart Pattern Matching
- **Handles SLURM job name truncation automatically**
- `jm dual_env_audit` works even when SLURM shows `dual_env`
- Progressive fallback strategies (exact โ shortened โ partial)
### Enhanced Job Completion Detection
- **Uses `sacct` to check job history when queue is empty**
- Detects quickly-completed jobs that finish before monitoring starts
- Shows job exit codes and completion timestamps
### Intelligent User Feedback
- **๐ฏ COMPLETED**: Job finished successfully
- **๐ CANCELLED**: Job cancelled via `scancel`
- **โ FAILED**: Job failed during execution
- **โฐ TIMEOUT**: Job exceeded time limit
- **๐ RUNNING**: Job currently executing
### Better Monitoring Experience
- **Real-time transitions**: Automatically moves from queue monitoring to output viewing
- **Helpful suggestions**: When searches fail, provides actionable alternatives
- **Debug mode**: `jm -d pattern` shows detailed search process
## ๐ Usage Examples
```bash
# Basic monitoring
jm # Monitor all your jobs
jm foldx # Monitor jobs matching "foldx"
jm 41005547 # Monitor specific job ID
# Enhanced features
jm dual_env_audit # Works despite SLURM name truncation
jm -d pattern # Debug mode shows search process
jm -q pattern # Quiet mode (less verbose)
jq pattern # Short alias for quiet mode
# Advanced options
jm -u username # Monitor another user's jobs
jm -i 5 # 5-second refresh interval
```
## ๐ง Installation Options
### Option 1: pip (Recommended)
```bash
pip install --user jobmon-slurm
```
### Option 2: Development Install
```bash
git clone https://github.com/omonidat/jobmon-slurm.git
cd jobmon-slurm
pip install --user -e .
```
### Option 3: Direct Script Install
```bash
# Download and install manually
wget https://raw.githubusercontent.com/omonidat/jobmon-slurm/main/install.sh
bash install.sh
```
## ๐๏ธ Requirements
- **SLURM environment** (uses `squeue`, `sacct`, `scancel`)
- **Python 3.6+** (for package management only)
- **Standard Unix utilities** (`bash`, `tail`, `grep`, etc.)
## ๐งช Examples in Action
### Cancelled Job Detection
```bash
$ jm my_job
# Start monitoring...
# User runs: scancel 41005547
# Monitor output:
==========================================
๐ JOB CANCELLED at Wed Jul 23 10:15:42 2025
==========================================
๐ก This job was cancelled (likely via 'scancel' command)
If this was intentional, no further action needed
If accidental, you may want to resubmit the job
```
### Smart Pattern Matching
```bash
$ jm dual_environment_audit_script
# Automatically tries:
# 1. "dual_environment_audit_script" (exact)
# 2. "dual_env" (SLURM truncated)
# 3. "dual" (shorter pattern)
# Shows which pattern worked in debug mode
```
## ๐ค Contributing
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
## ๐ License
MIT License - see [LICENSE](LICENSE) file for details.
## ๐ Support
- **Issues**: [GitHub Issues](https://github.com/omonidat/jobmon-slurm/issues)
- **Discussions**: [GitHub Discussions](https://github.com/omonidat/jobmon-slurm/discussions)
- **Documentation**: [Full docs](https://github.com/omonidat/jobmon-slurm/wiki)
Raw data
{
"_id": null,
"home_page": "https://github.com/omonidat/jobmon-slurm",
"name": "jobmon-slurm",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "slurm hpc job monitoring cluster computing batch scheduler",
"author": "Shafeeq Ibraheem",
"author_email": "omonidat@example.com",
"download_url": "https://files.pythonhosted.org/packages/74/fb/d1553fa09be33d67bf7d504e143ca396483806ee4613aadf02dee5b7e135/jobmon_slurm-2.0.0.tar.gz",
"platform": null,
"description": "# jobmon-slurm: Enhanced Universal SLURM Job Monitor\n\n[](https://badge.fury.io/py/jobmon-slurm)\n[](https://www.python.org/downloads/)\n\nA robust, user-friendly SLURM job monitoring utility that handles job name truncation, detects job completion status, and provides intelligent feedback for HPC environments.\n\n## \ud83d\ude80 Quick Start\n\n```bash\n# Install (no admin required)\npip install --user jobmon-slurm\n\n# Monitor all your jobs\njm\n\n# Monitor specific job pattern (handles SLURM truncation)\njm dual_env_audit\n\n# Monitor specific job ID\njm 41005547\n\n# Quiet mode\njq pattern\n\n# Debug mode for troubleshooting\njm -d pattern\n```\n\n## \u2728 Features\n\n### Smart Pattern Matching\n- **Handles SLURM job name truncation automatically**\n- `jm dual_env_audit` works even when SLURM shows `dual_env`\n- Progressive fallback strategies (exact \u2192 shortened \u2192 partial)\n\n### Enhanced Job Completion Detection\n- **Uses `sacct` to check job history when queue is empty**\n- Detects quickly-completed jobs that finish before monitoring starts\n- Shows job exit codes and completion timestamps\n\n### Intelligent User Feedback\n- **\ud83c\udfaf COMPLETED**: Job finished successfully\n- **\ud83d\uded1 CANCELLED**: Job cancelled via `scancel`\n- **\u274c FAILED**: Job failed during execution\n- **\u23f0 TIMEOUT**: Job exceeded time limit\n- **\ud83d\udd04 RUNNING**: Job currently executing\n\n### Better Monitoring Experience\n- **Real-time transitions**: Automatically moves from queue monitoring to output viewing\n- **Helpful suggestions**: When searches fail, provides actionable alternatives\n- **Debug mode**: `jm -d pattern` shows detailed search process\n\n## \ud83d\udccb Usage Examples\n\n```bash\n# Basic monitoring\njm # Monitor all your jobs\njm foldx # Monitor jobs matching \"foldx\"\njm 41005547 # Monitor specific job ID\n\n# Enhanced features\njm dual_env_audit # Works despite SLURM name truncation\njm -d pattern # Debug mode shows search process\njm -q pattern # Quiet mode (less verbose)\njq pattern # Short alias for quiet mode\n\n# Advanced options\njm -u username # Monitor another user's jobs\njm -i 5 # 5-second refresh interval\n```\n\n## \ud83d\udd27 Installation Options\n\n### Option 1: pip (Recommended)\n```bash\npip install --user jobmon-slurm\n```\n\n### Option 2: Development Install\n```bash\ngit clone https://github.com/omonidat/jobmon-slurm.git\ncd jobmon-slurm\npip install --user -e .\n```\n\n### Option 3: Direct Script Install\n```bash\n# Download and install manually\nwget https://raw.githubusercontent.com/omonidat/jobmon-slurm/main/install.sh\nbash install.sh\n```\n\n## \ud83c\udfd7\ufe0f Requirements\n\n- **SLURM environment** (uses `squeue`, `sacct`, `scancel`)\n- **Python 3.6+** (for package management only)\n- **Standard Unix utilities** (`bash`, `tail`, `grep`, etc.)\n\n## \ud83e\uddea Examples in Action\n\n### Cancelled Job Detection\n```bash\n$ jm my_job\n# Start monitoring...\n# User runs: scancel 41005547\n# Monitor output:\n==========================================\n\ud83d\uded1 JOB CANCELLED at Wed Jul 23 10:15:42 2025\n==========================================\n\ud83d\udca1 This job was cancelled (likely via 'scancel' command)\n If this was intentional, no further action needed\n If accidental, you may want to resubmit the job\n```\n\n### Smart Pattern Matching\n```bash\n$ jm dual_environment_audit_script\n# Automatically tries:\n# 1. \"dual_environment_audit_script\" (exact)\n# 2. \"dual_env\" (SLURM truncated)\n# 3. \"dual\" (shorter pattern)\n# Shows which pattern worked in debug mode\n```\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## \ud83c\udd98 Support\n\n- **Issues**: [GitHub Issues](https://github.com/omonidat/jobmon-slurm/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/omonidat/jobmon-slurm/discussions)\n- **Documentation**: [Full docs](https://github.com/omonidat/jobmon-slurm/wiki)\n",
"bugtrack_url": null,
"license": null,
"summary": "Enhanced Universal SLURM Job Monitor with smart pattern matching",
"version": "2.0.0",
"project_urls": {
"Bug Reports": "https://github.com/omonidat/jobmon-slurm/issues",
"Documentation": "https://github.com/omonidat/jobmon-slurm/blob/main/README.md",
"Homepage": "https://github.com/omonidat/jobmon-slurm",
"Source": "https://github.com/omonidat/jobmon-slurm/"
},
"split_keywords": [
"slurm",
"hpc",
"job",
"monitoring",
"cluster",
"computing",
"batch",
"scheduler"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "38521aa10c64e04d8d818e152d470979f4d17901448b3d091bbdfc8c56beac49",
"md5": "5db9e8bf77281ef43a31a06961d38664",
"sha256": "508e5782aea391631922fe193979c21aa7740412a998b937b6d6052373fedfe7"
},
"downloads": -1,
"filename": "jobmon_slurm-2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5db9e8bf77281ef43a31a06961d38664",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 10676,
"upload_time": "2025-07-23T08:51:42",
"upload_time_iso_8601": "2025-07-23T08:51:42.067746Z",
"url": "https://files.pythonhosted.org/packages/38/52/1aa10c64e04d8d818e152d470979f4d17901448b3d091bbdfc8c56beac49/jobmon_slurm-2.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "74fbd1553fa09be33d67bf7d504e143ca396483806ee4613aadf02dee5b7e135",
"md5": "5d1e06962fcba4aedd5ad2422a21a559",
"sha256": "2deb5ae22c2a80d4d41491f0b20bca6bd7a2843bc12f88e0322ee2e445d382bf"
},
"downloads": -1,
"filename": "jobmon_slurm-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "5d1e06962fcba4aedd5ad2422a21a559",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 12867,
"upload_time": "2025-07-23T08:51:43",
"upload_time_iso_8601": "2025-07-23T08:51:43.101933Z",
"url": "https://files.pythonhosted.org/packages/74/fb/d1553fa09be33d67bf7d504e143ca396483806ee4613aadf02dee5b7e135/jobmon_slurm-2.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-23 08:51:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "omonidat",
"github_project": "jobmon-slurm",
"github_not_found": true,
"lcname": "jobmon-slurm"
}