Command Reference
Complete reference of all S9S commands, shortcuts, and operations for efficient cluster management.
📋 Command Categories
Navigation Commands
Command | Description | Shortcut |
---|---|---|
| Switch to jobs view |
|
| Switch to nodes view |
|
| Switch to users view |
|
| Switch to partitions view |
|
| Switch to dashboard |
|
| Show help |
|
| Exit S9S |
|
Job Management Commands
Command | Description | Example |
---|---|---|
| Submit a new job |
|
| Cancel job(s) |
|
| Hold job(s) |
|
| Release held job(s) |
|
| Requeue job(s) |
|
| Change job priority |
|
Node Management Commands
Command | Description | Example |
---|---|---|
| Drain node(s) |
|
| Resume drained node(s) |
|
| SSH to node |
|
| Reboot node |
|
Filtering Commands
Command | Description | Example |
---|---|---|
| Quick filter |
|
| Advanced filter |
|
| Clear all filters |
|
| Save current filter |
|
Export Commands
Command | Description | Example |
---|---|---|
| Export data |
|
| Generate report |
|
🎯 Detailed Command Reference
Job Commands
:submit - Submit Jobs
:submit <script> [options] Options: --cores=N Number of CPU cores --mem=SIZE Memory requirement (e.g., 32GB) --time=DURATION Time limit (e.g., 2:00:00) --partition=NAME Partition name --gpus=N Number of GPUs --array=RANGE Job array (e.g., 1-100) --dependency=TYPE:ID Job dependency --name=NAME Job name --account=ACCOUNT Account for billing Examples: :submit analysis.sh --cores=16 --mem=64GB --time=4:00:00 :submit ml_train.py --gpus=2 --partition=gpu :submit job_array.sh --array=1-100 --cores=4
:cancel - Cancel Jobs
:cancel <job_ids> [options] Options: --force Force cancellation --reason=TEXT Cancellation reason --signal=SIGNAL Signal to send (default: SIGTERM) Examples: :cancel 12345 :cancel 12345,12346,12347 :cancel job[001-100] :cancel --force 12345 --reason="Emergency maintenance"
:hold - Hold Jobs
:hold <job_ids> [options] Options: --reason=TEXT Hold reason --user-hold User hold (can release) --system-hold System hold (admin required) Examples: :hold 12345 --reason="Debugging required" :hold /state:PENDING --user-hold
:release - Release Jobs
:release <job_ids> Examples: :release 12345 :release /state:HELD user:alice
:requeue - Requeue Jobs
:requeue <job_ids> [options] Options: --hold Hold after requeue --reason=TEXT Requeue reason Examples: :requeue 12345 :requeue /state:FAILED --hold
:priority - Change Priority
:priority <job_ids> --priority=VALUE Examples: :priority 12345 --priority=1000 :priority /user:alice --priority=+100 :priority /state:PENDING --priority=500
Node Commands
:drain - Drain Nodes
:drain <nodes> [options] Options: --reason=TEXT Drain reason --timeout=DURATION Max time to wait for jobs --force Force drain (kill jobs) Examples: :drain node001 --reason="Hardware upgrade" :drain node[001-010] --timeout=2h :drain /features:gpu --force --reason="Emergency"
:resume - Resume Nodes
:resume <nodes> Examples: :resume node001 :resume node[001-010] :resume /state:DRAIN
:ssh - SSH to Nodes
:ssh <node> [command] [options] Options: --user=USERNAME SSH username --key=KEYFILE SSH key file --port=PORT SSH port Examples: :ssh node001 :ssh node001 "uptime" :ssh node001 --user=admin "sudo reboot"
:reboot - Reboot Nodes
:reboot <nodes> [options] Options: --force Force reboot --delay=SECONDS Delay before reboot --reason=TEXT Reboot reason Examples: :reboot node001 :reboot node[001-010] --delay=300 :reboot /state:MAINT --force
Filtering Commands
/ - Quick Filter
/<filter_expression> Examples: /user:alice # Jobs by user alice /state:RUNNING # Running jobs /partition:gpu state:PENDING # Pending GPU jobs /nodes:>4 time:>2h # Large, long-running jobs
:filter - Advanced Filter
:filter "<complex_filter>" Examples: :filter "user:alice,bob state:RUNNING partition:gpu" :filter "submitted:>1h runtime:<30m" :filter "priority:>1000 OR qos:high"
:save-filter - Save Filters
:save-filter <name> [filter] Examples: :save-filter my-running-jobs "/user:alice state:RUNNING" :save-filter gpu-jobs "/partition:gpu" :save-filter # Save current filter
:load-filter - Load Filters
:load-filter <name> Examples: :load-filter my-running-jobs :load-filter gpu-jobs
Export Commands
:export - Export Data
:export <format> [options] Formats: csv, json, excel, html, xml Options: --output=FILE Output filename --fields=LIST Fields to export --filter=EXPR Filter expression --selected Export selected items only Examples: :export csv --output=jobs.csv :export json --fields=JobID,User,State :export excel --selected :export csv --filter="user:alice" --output=alice_jobs.csv
:report - Generate Reports
:report <type> [options] Types: utilization, efficiency, summary, costs, compliance Options: --period=DURATION Time period (day, week, month, year) --format=FORMAT Output format (pdf, html, csv) --email=ADDRESS Email report --users=LIST Specific users --partitions=LIST Specific partitions Examples: :report utilization --period=month --format=pdf :report efficiency --users=alice,bob :report costs --partitions=gpu [email protected]
View Commands
:view - Switch Views
:view <view_name> Views: jobs, nodes, users, partitions, dashboard, performance Examples: :view jobs :view nodes :view dashboard
:columns - Configure Columns
:columns <action> [column_name] Actions: show, hide, add, remove, reset Examples: :columns show Priority :columns hide Account :columns add GPUs :columns reset
:sort - Sort Data
:sort <column> [direction] Direction: asc, desc Examples: :sort JobID desc :sort SubmitTime asc :sort Priority desc
Configuration Commands
:config - Configuration Management
:config <action> [key] [value] Actions: get, set, list, reset, validate Examples: :config get refresh_interval :config set theme dark :config list :config validate
:theme - Theme Management
:theme <theme_name> Themes: dark, light, terminal, high-contrast Examples: :theme dark :theme terminal
System Commands
:status - System Status
:status [component] Components: cluster, scheduler, storage, network Examples: :status :status cluster :status scheduler
:log - View Logs
:log [options] Options: --lines=N Number of lines --follow Follow log output --level=LEVEL Log level filter --component=COMP Component filter Examples: :log --lines=100 :log --follow --level=error :log --component=scheduler
:refresh - Refresh Data
:refresh [view] Examples: :refresh # Refresh current view :refresh jobs # Refresh jobs data :refresh nodes # Refresh nodes data
⌨️ Keyboard Shortcuts
Global Shortcuts
Key | Action |
---|---|
| Quit |
| Help |
| Refresh |
| Interrupt/Cancel |
| Clear/Cancel |
Navigation Shortcuts
Key | Action |
---|---|
| Dashboard view |
| Jobs view |
| Nodes view |
| Users view |
| Partitions view |
| Next view |
| Previous view |
View-Specific Shortcuts
Jobs View:
Key | Action |
---|---|
| Cancel job |
| Hold job |
| Release job |
| Kill job |
| Show details |
| SSH to job nodes |
| Show output |
| Show logs |
Nodes View:
Key | Action |
---|---|
| Drain node |
| Resume node |
| SSH to node |
| Maintenance mode |
| Node info |
| Jobs on node |
Selection Shortcuts:
Key | Action |
---|---|
| Toggle selection |
| Visual selection mode |
| Visual line mode |
| Select all |
| Deselect all |
Filtering Shortcuts
Key | Action |
---|---|
| Quick filter |
| Next match |
| Previous match |
| Clear filter |
Export Shortcuts
Key | Action |
---|---|
| Export CSV |
| Export JSON |
| Export Excel |
| Print/PDF |
🔧 Advanced Usage
Command Chaining
# Chain multiple commands :filter "state:FAILED" ; :cancel --selected ; :clear # Conditional execution :submit job.sh --cores=16 && :priority $JOB_ID --priority=1000 # Pipe operations :export json --fields=JobID,User | :import --target=database
Variables and Substitution
# Use environment variables :submit $HOME/scripts/analysis.sh --account=$SLURM_ACCOUNT # Job ID substitution :cancel $LAST_JOB_ID :ssh node001 "kill $JOB_PID" # Date/time substitution :export csv --output=jobs_$(date +%Y%m%d).csv
Scripting Commands
# Script execution :script /path/to/commands.s9s # Batch mode :batch < batch_commands.txt # Interactive scripting :begin-script :filter "user:alice state:RUNNING" :priority --selected --priority=500 :end-script
🚨 Emergency Commands
Emergency Stop
:emergency-stop [options] Options: --reason=TEXT Emergency reason --notify Send notifications --graceful Graceful shutdown Examples: :emergency-stop --reason="Power outage" --notify
Emergency Evacuation
:evacuate <nodes> [options] Options: --timeout=DURATION Evacuation timeout --force Force evacuation --destination=NODE Target nodes Examples: :evacuate rack01 --timeout=30m :evacuate /features:gpu --force
💡 Command Tips
Efficiency Tips
- Use tab completion - Most commands support tab completion
- Learn shortcuts - Master keyboard shortcuts for speed
- Save filters - Save commonly used filters
- Use aliases - Create command aliases for frequent operations
- Batch operations - Use visual selection for bulk actions
Best Practices
- Be specific - Use precise filters and job IDs
- Confirm destructive actions - Always verify before canceling jobs
- Use dry-run mode - Test commands with when available
--dry-run
- Document reasons - Always provide reasons for administrative actions
- Check permissions - Ensure you have necessary permissions
🔍 Command Help
Getting Help
:help # General help :help <command> # Command-specific help :help shortcuts # Keyboard shortcuts :help examples # Command examples :man <command> # Detailed manual page
Command Discovery
:commands # List all commands :commands --category=job # Commands by category :search <keyword> # Search commands :recent # Recently used commands
🚀 Next Steps
- Practice with Job Management commands
- Learn Advanced Filtering syntax
- Explore Batch Operations for efficiency
- Master SSH Integration commands