--- title: Create a Background Idle Prevention Processs description: published: true date: 2025-06-25T11:49:23.320Z tags: editor: markdown dateCreated: 2025-06-25T11:49:23.320Z --- # Setting Up a Lightweight Keep-Alive Script on Ubuntu Server 24.04 LTS This guide describes how to create a `keep_alive.sh` script to prevent a headless Ubuntu Server from being considered idle and how to configure it as a systemd service for persistence. ## Creating the Keep-Alive Script 1. **Create the Script**: Open a terminal and create the script file: ```bash nano /usr/local/bin/keep_alive.sh ``` Add the following content: ```bash #!/bin/bash while true; do echo "Keep alive" > /dev/null sleep 60 done ``` Save and exit by pressing `Ctrl+O`, `Enter`, then `Ctrl+X`. 2. **Make the Script Executable**: Set execute permissions for the script: ```bash chmod +x /usr/local/bin/keep_alive.sh ``` 3. **Run the Script in the Background**: Start the script in the background, ensuring it persists after logout: ```bash nohup /usr/local/bin/keep_alive.sh & ``` ## Configuring the Script as a Systemd Service To ensure the script runs automatically on boot and is managed by the system, configure it as a systemd service. 1. **Create the Systemd Service File**: Create a service file: ```bash sudo nano /etc/systemd/system/keep-alive.service ``` Add the following content: ```ini [Unit] Description=Keep Alive Script to Prevent Idle After=network.target [Service] ExecStart=/usr/local/bin/keep_alive.sh Restart=always [Install] WantedBy=multi-user.target ``` Save and exit (`Ctrl+O`, `Enter`, `Ctrl+X`). 2. **Enable and Start the Service**: Enable the service to start on boot and run it immediately: ```bash sudo systemctl enable keep-alive.service sudo systemctl start keep-alive.service ``` 3. **Verify the Service Status**: Check that the service is running: ```bash systemctl status keep-alive.service ``` ## Notes - **Resource Usage**: The script uses near 0% CPU and minimal memory (a few KB). - **Interval Adjustment**: Modify the `sleep 60` value in the script to change the interval (e.g., `sleep 30` for 30 seconds). - **Monitoring**: Confirm the script is running with `ps aux | grep keep_alive`.