Fix: Shell Script Works Manually But Fails in Cron

You’ve written a shell script. It works perfectly when you run it manually. You add it to cron, and… nothing. No output, no errors, just silence. This is one of the most common and frustrating problems in Linux administration. Here’s why it happens and how to fix it. The Root Cause: Environment Differences When you run a script manually, you get your full shell environment: $PATH, environment variables, your working directory, and all the context you’re used to. ...

April 4, 2026 Â· 4 min Â· 678 words Â· Rob Washington

Why Your Cron Job Isn't Running (And How to Fix It)

You added a cron job. It works when you run it manually. But cron just… doesn’t run it. No errors, no output, nothing. This is one of the most frustrating debugging experiences in Linux. Here’s a systematic checklist to find out what’s actually wrong. 1. Check If Cron Is Running First, make sure the cron daemon is actually running: 1 2 3 4 5 6 7 # systemd systems systemctl status cron # or systemctl status crond # Older init systems service cron status If it’s not running, start it: ...

April 2, 2026 Â· 5 min Â· 922 words Â· Rob Washington

Fix: Permission Denied /var/run/docker.sock

You run a Docker command and get this: G P d o o i t s a t l p e " u r h n m t i i t x s p s : i / a n % r 2 / d F r e v u n a n i r / e % d d 2 o F c w r k h u e i n r l % . e 2 s F o t d c r o k y c : i k n e c g r o . n t s n o o e c c c k t o / : n v n 1 p e . e c 2 r t 4 m / i t c s o o s n i t t o h a n e i n d D e e o r n c s i k / e e c d r r e d a a t e e m " o : n s o c k e t a t u n i x : / / / v a r / r u n / d o c k e r . s o c k : This happens because Docker runs as root by default, and your user doesn’t have permission to access the Docker socket. Here’s how to fix it properly. ...

March 30, 2026 Â· 4 min Â· 831 words Â· Rob Washington

Why Your Cron Job Isn't Running (And How to Fix It)

You added a cron job. You’re sure the syntax is right. But nothing happens. No output, no errors, just silence. Here’s how to figure out what’s wrong. Check If Cron Is Actually Running First, verify the cron daemon is alive: 1 2 3 4 5 6 7 # systemd systems systemctl status cron # or systemctl status crond # older systems service cron status If it’s not running, start it: ...

March 29, 2026 Â· 4 min Â· 759 words Â· Rob Washington

Fix 'Address Already in Use' Error (EADDRINUSE) — Find and Kill the Process

You try to start your server and get hit with: E r r o r : l i s t e n E A D D R I N U S E : a d d r e s s a l r e a d y i n u s e : : : 3 0 0 0 Or the Python equivalent: ...

March 27, 2026 Â· 5 min Â· 860 words Â· Rob Washington

Why Is My Cron Job Not Running? A Debugging Checklist

You added a cron job. It should be running. It isn’t. The logs are silent. This is one of the most frustrating debugging experiences in Linux administration because cron fails silently by default. Here’s a systematic checklist to find the problem. 1. Is crond Actually Running? First, verify the cron daemon is running: 1 2 3 4 5 6 7 # systemd systems systemctl status cron # or systemctl status crond # Older init systems service cron status If it’s not running, start it: ...

March 25, 2026 Â· 5 min Â· 959 words Â· Rob Washington

Why Your Cron Job Works Manually But Fails in Cron

You’ve written a script. You test it manually: ./my-script.sh — works perfectly. You add it to cron, wait for the scheduled time… nothing happens. No output, no errors, just silence. This is one of the most frustrating debugging experiences in Linux. Let’s fix it. The Core Problem: Cron Runs in a Different Environment When you run a script manually, you’re running it in your interactive shell with: Your PATH variable (with all your custom directories) Your environment variables (loaded from .bashrc, .profile, etc.) Your current working directory Your user’s full shell configuration Cron runs scripts in a minimal environment with almost none of this. That’s the root cause of nearly every “works manually, fails in cron” issue. ...

March 21, 2026 Â· 4 min Â· 830 words Â· Rob Washington

Why Your systemd Service Fails Silently (And How to Actually Debug It)

Your systemd service is “active (running)” but the application isn’t responding. No errors in systemctl status. The journal shows it started. Everything looks fine. Except it isn’t. This is one of the most frustrating debugging scenarios in Linux administration. Here’s how to actually figure out what’s wrong. The Problem: Green Status, Dead Application 1 2 3 4 5 $ systemctl status myapp ● myapp.service - My Application Loaded: loaded (/etc/systemd/system/myapp.service; enabled) Active: active (running) since Fri 2026-03-20 10:00:00 EDT; 2h ago Main PID: 12345 (myapp) Looks healthy. But curl localhost:8080 times out. What’s happening? ...

March 20, 2026 Â· 5 min Â· 869 words Â· Rob Washington

Why Your Cron Job Isn't Running: A Troubleshooting Guide

You’ve added your cron job, the syntax looks right, but nothing happens. No output, no errors, just silence. This is one of the most frustrating debugging experiences in Linux administration. Here’s how to systematically find and fix the problem. Check If Cron Is Actually Running First, verify the cron daemon is running: 1 2 3 4 5 6 7 # systemd systems (Ubuntu 16.04+, CentOS 7+, Debian 8+) systemctl status cron # or on some systems systemctl status crond # Older init systems service cron status If cron isn’t running, start it: ...

March 14, 2026 Â· 4 min Â· 841 words Â· Rob Washington

SSH Config Tips That Save Hours

Your ~/.ssh/config file is the most underused productivity tool in your terminal. Here’s how to make SSH work for you. Basic Structure H o s t H U P m o s o y s e r s t r t e N r a a 2 v m d 2 e e m r i 1 n 9 2 . 1 6 8 . 1 . 1 0 0 Now ssh myserver replaces ssh admin@192.168.1.100. ...

March 13, 2026 Â· 15 min Â· 3123 words Â· Rob Washington