You have been SSH-ing into servers for years. You have restarted Puma, tailed logs, killed runaway processes, and grepped through production output at 2 AM. But here is the thing I suspect you already know: you have been driving a car without understanding the engine. You know kill -9 works, but do you know why kill -15 should be your first choice? Do you know what happens between typing ssh user@host and seeing your shell prompt? This module fills those gaps.
Linux is where Rails lives. Not your MacBook, not your Docker container in the abstract -- a Linux kernel managing processes, file descriptors, signals, and memory. When Puma hangs and stops accepting connections, the answer is in lsof and /proc, not in restarting the service and hoping. When Sidekiq will not die gracefully, it is because you do not understand signal propagation to child processes. When a deploy fails silently, it is because you do not understand exit codes and process supervision.
The uncomfortable truth is that most Rails developers treat Linux like a hostile environment they have to survive rather than a tool they wield. They copy-paste shell commands from Stack Overflow, cross their fingers, and move on. You have done this. I know because everyone has done this.
This module is not about becoming a sysadmin. It is about becoming a Rails developer who does not panic when the abstraction leaks. File permissions, process trees, systemd, cron, disk I/O -- these are not esoteric knowledge. They are the foundation your application runs on every single day. Understanding them is the difference between "the server is broken" and "the OOM killer reaped Sidekiq because we have a memory leak in the PDF generation worker."
Start here. Everything else in this curriculum sits on top of Linux.