Cloud House Technologies Logo
CloudHouse Technologies
HomeServicesProjectsBlogAbout UsCareersContact UsLogin
    Cloud House Technologies Logo
    CloudHouse Technologies
    HomeServicesProjectsBlogAbout UsCareersContact UsLogin

    DirectAdmin Cron Jobs Not Running? Complete Troubleshooting & Fix Guide

    Priya

    Content Writer & Researcher

    Last Updated: 10 August 2026
    🖥️

    Critical Cron Jobs Failing Silently on Your DirectAdmin Server?

    CloudHouse Technologies monitors cron execution, DirectAdmin configurations, and scheduled task health 24/7. We catch silent failures before they affect your backups, renewals, or customer-facing automation. Talk to our team today.

    🔧 Book Free DiagnosisCall NowWhatsApp
    🖥️12,400+PCs Fixed
    ⭐4.9★Google Rating
    ⚡<15 minAvg. Response
    🛡️ISO 27001Certified

    You set up a cron job in DirectAdmin to handle automated backups, SSL renewal, or a scheduled script — and it never runs. No error, no output, just silence. DirectAdmin cron jobs fail silently more often than any other server automation problem, and the causes range from a stopped daemon to a missing environment variable that a shell script takes for granted. This guide covers every common failure point with the exact commands to diagnose and fix them.

    How DirectAdmin Handles Cron Jobs

    DirectAdmin provides a web interface for end users to manage cron jobs for their account. Behind the scenes, these entries are written to the system crontab under the cPanel user's system account. The actual execution is handled by the system crond daemon — DirectAdmin itself doesn't run cron jobs directly.

    This architecture means a cron job that "isn't running" could be failing at any of these layers: the crond daemon is stopped, the crontab entry has a syntax error, the script has a path or permissions problem, or the command relies on environment variables that aren't available in a non-interactive cron environment.

    💡 None of these worked? Skip the guesswork.

    Get Expert Help →

    Step 1: Verify the Cron Daemon Is Running

    1Check crond status
    systemctl status crond   # CentOS/AlmaLinux/CloudLinux
    systemctl status cron    # Debian/Ubuntu

    If the service is stopped or failed, start it:

    systemctl start crond && systemctl enable crond
    2Verify crond is actually processing the crontab
    systemctl list-timers crond
    journalctl -u crond --since "1 hour ago" | tail -20

    You should see regular activity lines. If the journal is empty for the past hour despite active cron entries, crond is likely misconfigured or blocked by a security tool.

    1On CentOS/AlmaLinux servers
    grep CRON /var/log/cron | tail -50
    2On Debian/Ubuntu servers
    grep CRON /var/log/syslog | tail -50
    3If cron logging is not configured

    Some minimal server installs don't log cron activity by default. Enable it by adding to /etc/rsyslog.conf:

    cron.*  /var/log/cron.log

    Then restart rsyslog:

    systemctl restart rsyslog
    4Redirect cron output to a file for debugging

    Edit the crontab entry to capture all output:

    * * * * * /path/to/script.sh >> /tmp/cron-debug.log 2>&1

    Run this for a few minutes, then read the debug log. Any script error or "command not found" message will appear there.

    1View the crontab for a specific DirectAdmin user
    crontab -l -u username

    Replace username with the system username that corresponds to the DirectAdmin account.

    2Check for syntax errors

    Common cron timing mistakes:

    • Using */1 intending "every minute" — this works but * alone means every minute if the field is the minute field
    • Using comma-separated values when ranges are needed (e.g., 0,30 vs 0-30)
    • Mixing up field order — cron fields are: minute hour day-of-month month day-of-week command

    Use crontab.guru to validate any timing expression before saving it.

    3Check that the DirectAdmin user interface saved the crontab correctly

    Log into DirectAdmin → Your Account → Cronjobs. Check that the entry is listed. If the interface shows the job but crontab -l -u username doesn't, there's a write permission problem with the crontab file — run crontab -e -u username and add the entry manually.

    1Use absolute paths for all commands in cron scripts

    Instead of:

    php script.php

    Use:

    /usr/local/bin/php script.php

    Find the full path of any command with:

    which php
    which python3
    which composer
    2Set a minimal PATH at the top of the crontab

    Edit the crontab and add this as the first line:

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    3Source the user environment in the script itself

    For bash scripts that need the full user environment:

    #!/bin/bash
    source /home/username/.bash_profile
    # rest of script
    1Find the correct PHP binary for a version
    ls /usr/local/php*/bin/php
    # Example output:
    # /usr/local/php74/bin/php
    # /usr/local/php81/bin/php
    # /usr/local/php82/bin/php
    2Use the full versioned PHP path in the cron command
    0 2 * * * /usr/local/php81/bin/php /home/username/public_html/artisan schedule:run >> /dev/null 2>&1
    3For Laravel scheduled commands

    Laravel's scheduler requires exactly one cron entry running every minute. The standard Laravel cron entry on DirectAdmin is:

    * * * * * /usr/local/php81/bin/php /home/username/public_html/artisan schedule:run >> /dev/null 2>&1
    1Verify the script is executable
    ls -la /home/username/scripts/myscript.sh

    The file must have execute permission:

    chmod +x /home/username/scripts/myscript.sh
    2Verify ownership matches the crontab user

    A script owned by root that a user's cron job tries to execute will fail if the script doesn't have world-execute permission. Either fix the ownership:

    chown username:username /home/username/scripts/myscript.sh

    Or, if the script must be owned by root, add it to root's crontab instead of the user's crontab.

    3Check that the script's working directory exists

    Cron sets the working directory to the user's home directory by default. If your script assumes it's running from /home/username/public_html/, add a cd at the top:

    #!/bin/bash
    cd /home/username/public_html/ || exit 1
    1Check if ConfigServer Security & Firewall (CSF) is blocking cron
    csf -l | grep cron

    CSF can occasionally interfere with cron execution on heavily locked-down servers. Check CSF logs if cron appears to start but scripts don't complete.

    2Check SELinux on CentOS/AlmaLinux
    getenforce
    ausearch -m AVC -ts recent | grep cron

    If SELinux is enforcing and has denied cron actions, set it to permissive temporarily to confirm:

    setenforce 0

    If cron starts working, create a proper SELinux policy rather than leaving it permissive permanently.

    Cron jobs that fail silently — taking backups, sending reports, running renewals — represent a real business risk. If you discover that critical automation has been failing for days or weeks, the root cause almost always turns out to be a configuration detail that managed server support catches early. CloudHouse Technologies' server management service includes proactive monitoring of cron execution, DirectAdmin configuration audits, and scheduled task health checks.

    Get the Free Linux Server Admin Cheatsheet (PDF)

    Essential commands for server management, networking, and troubleshooting — all on one printable page.

    Running Linux servers? Let us manage them for you.

    Our Managed Linux Server plans cover updates, security hardening, monitoring, and 24/7 incident response — so your servers stay up and your team stays focused.

    • Proactive OS patching and security updates
    • 24×7 monitoring with instant alerting
    • Backup configuration and disaster recovery
    • Dedicated Linux engineers on call
    See Pricing Plans →

    What our customers say

    “Our production server went down at 2 AM. CloudHouse had it back online in under 20 minutes. Incredible response time.”

    Arun S.

    CTO, SaaS Startup

    “They migrated our entire infrastructure from Ubuntu 18 to 22 with zero downtime. Couldn't have asked for better.”

    Deepak N.

    DevOps Lead

    Frequently Asked Questions

    Cron runs with a minimal environment — no PATH aliases, shell functions, or variables from .bashrc. Commands that work in SSH often fail in cron because they can't find executables by short name. Use absolute paths (e.g. /usr/local/bin/php instead of php) and redirect output to a log file to see the actual error.

    Book your free 15-minute diagnosis

    A certified technician will call you back within 15 minutes during business hours.

    Share this article

    Leave a Comment

    Comments (0)

    Loading comments...

    Cron Jobs Not Running on Your DirectAdmin Server?

    Silent cron failures for backups and automation can go unnoticed for days. CloudHouse Technologies manages DirectAdmin servers proactively — auditing cron configurations and alerting on execution failures before they become data loss incidents.

    Call Now — FreeWhatsApp Us

    Why CloudHouse?

    • ISO 27001:2022 certified
    • 12,400+ devices supported
    • 4.9★ on Google
    • Sub-15-minute response

    CloudHouse Technologies

    Innovative cloud solutions for modern businesses. We deliver cutting-edge technology with exceptional service.

    Contact Us

    CloudHouse Technologies Pvt.Ltd
    Special Economic Zone(SEZ),
    Infopark Thirissur,4B-15,
    Indeevaram,Nalukettu Road,
    Koratty, Kerala, India-680308
    0480-27327360
    info@cloudhousetechnologies.com

    Quick Links

    • Our Services
    • Gold Loan Software
    • About Us
    • Contact
    • Terms and Conditions
    • Privacy Policy
    ISO27001:2022
    Certified

    © 2026 CloudHouse Technologies Pvt.Ltd. All rights reserved.

    Back to top