Fedora 20 how to run script at the end of startup

5YrsLaterDBA picture 5YrsLaterDBA · Feb 9, 2015 · Viewed 18.5k times · Source

I am using Fedora 20. I have a two lines bash script needs to be run at the end of the startup. I want it to be run automatically each time when machine is startup. How can I do this?

I tried "sudo crontab -e" to insert my executable script but it always gave me error teling me the the time is not right and cannot modify the file.

Answer

Charlie C picture Charlie C · Feb 10, 2015

You can create a Systemd unit file in /usr/lib/systemd/system/<service_name>.service. Here is a template:

[Unit]
Description=<description_string>

[Service]
WorkingDirectory=<working_directory>
Type=forking
ExecStart=/bin/bash <absolute_path_to_script>
KillMode=process

[Install]
WantedBy=multi-user.target

Replace anything in the angle brackets with your specific information. The 'WantedBy=multi-user.target' is the magic that tells Systemd to run your script on each start.

On the command line, tell Systemd to enable your service:

systemctl enable <service_name>.service

The next time you reboot your script should be run. Logs will be written to /var/log/messages.

Fedora has some basic documentation on unit files: Systemd unit files