How to Run Any Specific Command or Script on Linux Startup

1. Using cron:

The cron method is convenient for running commands or scripts at startup. The @reboot directive in the crontab allows you to specify tasks to be run when the system starts.

Open the crontab file

crontab -e

Add the following line:

@reboot /path/to/your/script.sh

Save and exit the editor. This ensures that your script will run each time the system reboots.

2. Using rc.local:

The /etc/rc.local file is traditionally used to run commands at the end of the system boot process.

Open the rc.local file

sudo nano /etc/rc.local

Add your command or script just before the exit 0 line:

/path/to/your/script.sh

Save and exit. Make sure the file is executable:

sudo chmod +x /etc/rc.local

This method may not be available on all distributions, as some are moving away from using rc.local in favor of systemd.

3. Using systemd:

Systemd is a modern init system used by many Linux distributions. You can create a systemd service to execute your script at startup.

Create a new service file, for example, /etc/systemd/system/myscript.service:

[Unit]
Description=My Startup Script

[Service]
ExecStart=/path/to/your/script.sh

[Install]
WantedBy=default.target

Reload systemd and enable/start the service:

sudo systemctl daemon-reload
sudo systemctl enable myscript.service
sudo systemctl start myscript.service

This method provides more control and flexibility and is widely used in modern Linux distributions.

4. Using ~/.bashrc or ~/.bash_profile (for user-specific commands):

If you want a command or script to run when a specific user logs in, you can add it to the ~/.bashrc or ~/.bash_profile file.

Open the .bashrc file

nano ~/.bashrc

Add your command or script at the end of the file:

/path/to/your/script.sh

Save and exit the editor. This method is user-specific and will run the script when the user logs in.

Remember to replace /path/to/your/script.sh with the actual path to your script or command in each case. The appropriate method may vary depending on your distribution and system configuration.