To run your startup.sh script automatically at system startup, you can use a systemd service. Here's how to set it up:


1. Place the Script in an Appropriate Location

Move your startup.sh script to a proper directory, such as /usr/local/bin, and make it executable:

bashCopy codesudo mv /path/to/startup.sh /usr/local/bin/startup.sh
sudo chmod +x /usr/local/bin/startup.sh

2. Create a Systemd Service File

Create a new systemd service file, e.g., /etc/systemd/system/startup.service:

bashCopy codesudo nano /etc/systemd/system/startup.service

Add the following content to the file:

iniCopy code[Unit]
Description=Startup Script for Next.js and Nuxt.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/startup.sh
Restart=always
User=your-username
WorkingDirectory=/path/to/your/project

[Install]
WantedBy=multi-user.target

Replace:

  • your-username with your system username.
  • /path/to/your/project with the directory where your project resides.

3. Reload Systemd and Enable the Service

Reload systemd to recognize the new service, enable it to start on boot, and start the service:

bashCopy codesudo systemctl daemon-reload
sudo systemctl enable startup.service
sudo systemctl start startup.service

4. Verify the Service

Check the status of the service to ensure it is running:

bashCopy codesudo systemctl status startup.service

5. Check Logs for Debugging

If the service doesn’t start as expected, view the logs to debug:

bashCopy codesudo journalctl -u startup.service

Alternative Approach: Use Crontab

If you prefer a simpler approach, you can use cron to run the script on system startup.

  1. Edit the crontab for the root user:bashCopy codesudo crontab -e
  2. Add the following line to execute the script at startup:bashCopy code@reboot /usr/local/bin/startup.sh
  3. Save and exit.

The systemd approach is generally preferred for better control, monitoring, and logging of the service. Let me know if you need help troubleshooting!