⚡ ~/naveed Interview Prep
⚡ Portfolio Home ✍️ Engineering Blog Deep Dives 🎯 Interview Hub 998+ Scenarios ☸️ Kubernetes Mastery Hub 24 Modules 🎮 DevOps Arcade & Quizzes Subnet Blitz ⚡ 🗺️ DevOps Roadmaps PDFs & Guides 🤖 Morpheus Analysis AI Quant ↗ 🛠️ Developer Tools Utilities 🧪 Labs & Experiments 📄 Interactive CV & Certs 🔗 All Links & Socials ⚡ Join The Dispatch (Weekly SRE Newsletter) →
Senior DevOps / SRE [L2] Linux Linux / SRE — Scenario-Based Interview Questions Production Scenario [L2]

Q: You need to run a long-lived background service that must automatically restart if it crashes. You also want to manage its lifecycle (start/stop/restart) from a single systemd unit file. How do you configure systemd for auto-restart, and what are the critical directives?

Modern Linux systems use systemd to manage services instead of SysVinit scripts. A systemd unit file (e.g., /etc/systemd/system/myapp.ser...

#Linux #Linux / SRE — Scenario-Based Interview Questions #L2 #SRE #Systems #Troubleshooting
🎙️ Candidate Opening & Architectural Context
""During an on-call shift, our alerts triggered when a critical Linux production server exhibited this behavior. The interviewer is testing: Systemd service definition, restart policies, type directives.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement

🛠️ Production Runbook & Step-by-Step Resolution

1️⃣

Initial Diagnostics & Root Cause Analysis

Modern Linux systems use systemd to manage services instead of SysVinit scripts. A systemd unit file (e.g., /etc/systemd/system/myapp.service) must configure restart behavior explicitly.

  • Type=simple (default): The process runs in the foreground. Systemd considers the service active when the process starts.
  • Type=forking: The process daemonizes itself (old SysVinit behavior). Systemd waits for the parent to exit before considering it active.
  • Restart=on-failure: Automatically restart if the process exits with a non-zero exit code.
2️⃣

Remediation & Permanent Safeguards

Key directives: Example configuration: Then enable and start: systemctl daemon-reload && systemctl enable myapp && systemctl start myapp.

[Unit]
Description=My Critical Application
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/myapp
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
  • RestartSec=5: Wait 5 seconds between restart attempts to avoid restart loops.
  • StandardOutput=journal and StandardError=journal: Capture all logs directly to journald (no separate log files needed).
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Type=simple (default): The process runs in the foreground. Systemd considers the service active when the process starts.."
⚡ 60-Second Elevator Pitch Talking Points
  • Type=simple (default): The process runs in the foreground. Systemd considers the service active w...
  • Type=forking: The process daemonizes itself (old SysVinit behavior). Systemd waits for the parent...
  • Restart=on-failure: Automatically restart if the process exits with a non-zero exit code.
Advertisement
Want more Linux scenarios?
Explore our complete collection of scenario-based Linux interview runbooks.
Browse All Linux Questions →

📚 Related Production Scenarios in Linux