<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Christian</title>
    <description>The latest articles on Forem by Christian (@cs1711).</description>
    <link>https://forem.com/cs1711</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868507%2F28cb447e-ba1a-40d8-9919-3c40d159e7ae.png</url>
      <title>Forem: Christian</title>
      <link>https://forem.com/cs1711</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cs1711"/>
    <language>en</language>
    <item>
      <title>Cron is easy. Managing cron jobs is not.</title>
      <dc:creator>Christian</dc:creator>
      <pubDate>Wed, 08 Apr 2026 20:23:36 +0000</pubDate>
      <link>https://forem.com/cs1711/cron-is-easy-managing-cron-jobs-is-not-47e9</link>
      <guid>https://forem.com/cs1711/cron-is-easy-managing-cron-jobs-is-not-47e9</guid>
      <description>&lt;p&gt;Writing a cron job takes 30 seconds.&lt;/p&gt;

&lt;p&gt;Running cron jobs reliably in production?&lt;br&gt;
That’s where things start to break.&lt;/p&gt;




&lt;h2&gt;
  
  
  😵 The reality
&lt;/h2&gt;

&lt;p&gt;Once you have more than a handful of jobs, things get messy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;jobs run twice&lt;/li&gt;
&lt;li&gt;jobs hang forever&lt;/li&gt;
&lt;li&gt;jobs silently fail&lt;/li&gt;
&lt;li&gt;jobs behave differently across servers&lt;/li&gt;
&lt;li&gt;nobody knows what’s actually running&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cron itself doesn’t solve any of this.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 The real problems
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. No control over running jobs
&lt;/h3&gt;

&lt;p&gt;If something gets stuck, you’re SSH-ing into servers and killing processes manually.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. No execution limits
&lt;/h3&gt;

&lt;p&gt;A job that should run for 2 minutes might run forever.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Overlapping runs
&lt;/h3&gt;

&lt;p&gt;If a job takes longer than its interval:&lt;br&gt;
→ multiple instances pile up&lt;/p&gt;




&lt;h3&gt;
  
  
  4. No central visibility
&lt;/h3&gt;

&lt;p&gt;Multiple servers = multiple crontabs = chaos&lt;/p&gt;




&lt;h3&gt;
  
  
  5. No maintenance awareness
&lt;/h3&gt;

&lt;p&gt;Deployments happen, jobs keep running → failures &amp;amp; noisy alerts&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ What I actually needed
&lt;/h2&gt;

&lt;p&gt;I wanted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real control over job execution&lt;/li&gt;
&lt;li&gt;visibility into what’s running&lt;/li&gt;
&lt;li&gt;protection against overlapping runs&lt;/li&gt;
&lt;li&gt;the ability to stop jobs instantly&lt;/li&gt;
&lt;li&gt;multi-host execution&lt;/li&gt;
&lt;li&gt;proper monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And one more thing:&lt;/p&gt;

&lt;p&gt;👉 I didn’t want a SaaS.&lt;br&gt;&lt;br&gt;
👉 I wanted something I fully control.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧰 So I built this
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://cronmanager.meinetechnikwelt.rocks/" rel="noopener noreferrer"&gt;https://cronmanager.meinetechnikwelt.rocks/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/csoscd/cronmanager" rel="noopener noreferrer"&gt;https://github.com/csoscd/cronmanager&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;A lightweight cron job manager that sits on top of cron and adds the missing pieces.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔓 Open Source. Free. Self-hosted.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;fully open source
&lt;/li&gt;
&lt;li&gt;free to use
&lt;/li&gt;
&lt;li&gt;runs on your own infrastructure
&lt;/li&gt;
&lt;li&gt;Docker-native → up and running in minutes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No vendor lock-in. No external dependencies.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What it actually adds
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ Job management
&lt;/h3&gt;

&lt;p&gt;Define jobs with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;schedule&lt;/li&gt;
&lt;li&gt;command&lt;/li&gt;
&lt;li&gt;working directory&lt;/li&gt;
&lt;li&gt;descriptions &amp;amp; tags&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not just a crontab file anymore.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⏱ Execution limits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;set max runtime per job&lt;/li&gt;
&lt;li&gt;get alerts (email / Telegram)&lt;/li&gt;
&lt;li&gt;automatically kill jobs (local or via SSH)&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🚫 Singleton mode
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;prevents overlapping runs&lt;/li&gt;
&lt;li&gt;skips new executions while one is still running&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🛑 Kill running jobs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;stop jobs directly from the UI&lt;/li&gt;
&lt;li&gt;no SSH needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🛠 Maintenance windows
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;pause jobs during deployments&lt;/li&gt;
&lt;li&gt;avoid unnecessary alerts&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🏷 Tags &amp;amp; grouping
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;organize jobs&lt;/li&gt;
&lt;li&gt;filter and manage large setups easily&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  📊 Monitoring
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;success rate&lt;/li&gt;
&lt;li&gt;avg / min / max runtime&lt;/li&gt;
&lt;li&gt;visual charts over time&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🌍 Multi-host support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;run jobs across multiple servers&lt;/li&gt;
&lt;li&gt;execute via SSH in parallel&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔐 Authentication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;OIDC / OAuth2 support&lt;/li&gt;
&lt;li&gt;role-based access (Admin / Viewer)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Final thought
&lt;/h2&gt;

&lt;p&gt;Cron is a scheduler.&lt;/p&gt;

&lt;p&gt;But in production, you don’t just need scheduling.&lt;/p&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;control
&lt;/li&gt;
&lt;li&gt;visibility
&lt;/li&gt;
&lt;li&gt;safety
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💬 Curious
&lt;/h2&gt;

&lt;p&gt;How are you managing cron jobs today?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;plain crontab?&lt;/li&gt;
&lt;li&gt;custom scripts?&lt;/li&gt;
&lt;li&gt;something heavier like Airflow?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>linux</category>
      <category>devops</category>
      <category>backend</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
