Process Management
Monitor and manage system processes. Cross-platform (macOS, Linux).
List Processes
All processes:
code
exec: ps aux | head -30
By name:
code
exec: ps aux | grep -i "PROCESS_NAME" | grep -v grep
By PID:
code
exec: ps -p PID -o pid,ppid,user,%cpu,%mem,start,command
Tree view (Linux):
code
exec: ps auxf | head -40
Tree view (macOS):
code
exec: pstree 2>/dev/null || ps -ef | head -30
Find Process
By name (get PIDs):
code
exec: pgrep -l "PROCESS_NAME"
By port:
code
exec: lsof -i :PORT_NUMBER
By user:
code
exec: ps -u USERNAME -o pid,%cpu,%mem,command | head -20
Resource Usage
Top CPU consumers:
code
exec: ps aux --sort=-%cpu | head -11
Top memory consumers:
code
exec: ps aux --sort=-%mem | head -11
System load:
code
exec: uptime
One-shot top snapshot:
code
exec: top -bn1 | head -20 2>/dev/null || top -l 1 | head -20
Kill Processes
Kill by PID:
code
exec: kill PID
Force kill:
code
exec: kill -9 PID
Kill by name:
code
exec: pkill "PROCESS_NAME"
Kill all by name:
code
exec: pkill -f "PATTERN"
Kill by port:
code
exec: lsof -ti :PORT_NUMBER | xargs kill -9 2>/dev/null && echo "Killed" || echo "No process on port PORT_NUMBER"
Memory & Swap
Linux:
code
exec: free -h
macOS:
code
exec: vm_stat | perl -ne '/page size of (\d+)/ and $size=$1; /Pages\s+(\w+):\s+(\d+)/ and printf("%-16s %6.1f MB\n", "$1:", $2 * $size / 1048576)'
Cross-platform (Python fallback):
code
exec: python3 -c "import shutil; t,u,f=shutil.disk_usage('/'); print(f'Disk: {u//(1<<30)}GB used / {t//(1<<30)}GB total / {f//(1<<30)}GB free')"
Disk I/O
Linux:
code
exec: iostat -xd 1 2 2>/dev/null | tail -20
macOS:
code
exec: iostat -w 1 -c 2 2>/dev/null
Open Files
By process:
code
exec: lsof -p PID | head -30
Open file count by process:
code
exec: lsof | awk '{print $1}' | sort | uniq -c | sort -rn | head -15
Service Management (Linux systemd)
Status:
code
exec: systemctl status SERVICE_NAME
Start / stop / restart:
code
exec: sudo systemctl start SERVICE_NAME
code
exec: sudo systemctl stop SERVICE_NAME
code
exec: sudo systemctl restart SERVICE_NAME
List running services:
code
exec: systemctl list-units --type=service --state=running
Crontab (System Cron)
List user crontab:
code
exec: crontab -l 2>/dev/null || echo "No crontab for current user"
Notes
- •
ps auxworks on both macOS and Linux but output columns may differ slightly. - •
topflags differ: Linux uses-b -n 1, macOS uses-l 1. - •
freeis Linux-only; usevm_statorsysctlon macOS. - •
systemctlis Linux-only (systemd); macOS useslaunchctl. - •
lsofis available on both platforms and very useful for port/file investigation. - •Some operations (kill, systemctl) may require
sudo.