linux_wiki:systemd_service_script

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

linux_wiki:systemd_service_script [2016/01/31 22:37]
billdozor [Implementation]
linux_wiki:systemd_service_script [2019/05/25 23:50]
Line 1: Line 1:
-====== Systemd Service Script ====== 
- 
-**General Information** 
- 
-Creating a systemd until file (service script).  
- 
-**Checklist** 
-  * Enterprise Linux 7 
- 
----- 
- 
-====== Unit File Reference ====== 
- 
-  * /usr/lib/systemd/system => system unit configuration files (default with system) 
-  * /etc/systemd/system => additional configuration files (downloaded or custom) 
- 
----- 
- 
-====== Implementation ====== 
- 
-  * Download the code 
-  * Modify each section to make sense for your service 
-  * Copy to /etc/systemd/system/<name-of-service>.service 
-  * Start your service<code bash>systemctl start <name-of-service></code> 
-    * **Note: This will fail if the ExecStart script/program does not have the executable permissions or if the Environment config file does not exist.** 
- 
----- 
- 
-====== The Service Unit File ====== 
- 
-<code bash myprog.service> 
-[Unit] 
-Description=My Awesome Program 
-After=syslog.target 
- 
-[Service] 
-EnvironmentFile=/etc/myprog.d/config 
-ExecStart=/usr/local/bin/myprog.sh 
-Restart=on-abort 
- 
-[Install] 
-WantedBy=multi-user.target 
-</code> 
-  * Description => Displays near the top of output on "systemctl status myprog.service" 
-  * After => can be any valid ".target" unit 
-    * See all: systemctl -t target --all 
-  * EnvironmentFile => Configuration file to load 
-  * ExecStart => Executable to start 
-  * Restart => Auto restarts the program if an un-handled exit error occurs 
-  * WantedBy => If enabled, start under which target 
- 
----- 
- 
-===== Example: Test Script ===== 
- 
-This is the script that was used to test the custom systemd service unit file. 
- 
-/usr/local/bin/myprog.sh 
-<code bash> 
-#!/bin/bash 
- 
-echo "Welcome to my program" 
-logger -p info "$0 has started on $(date)" 
- 
-while true; do 
-  logger -p info "$0 is still running..." 
-  sleep 30 
-done 
-</code> 
-  * **Note: Ensure this script is executable, or the service will fail to start.** 
- 
----- 
- 
-==== Example: Service Status ==== 
- 
-<code bash> 
-[root@server1 system]# systemctl start myprog.service 
-[root@server1 system]# systemctl status myprog.service  
-● myprog.service - My Awesome Program 
-   Loaded: loaded (/etc/systemd/system/myprog.service; disabled; vendor preset: disabled) 
-   Active: active (running) since Sun 2016-01-24 10:30:08 CST; 6s ago 
- Main PID: 17602 (myprog.sh) 
-   CGroup: /system.slice/myprog.service 
-           ├─17602 /bin/bash /usr/local/bin/myprog.sh 
-           └─17608 sleep 30 
- 
-Jan 24 10:30:08 server1.local systemd[1]: Started My Awesome Program. 
-Jan 24 10:30:08 server1.local systemd[1]: Starting My Awesome Program... 
-Jan 24 10:30:08 server1.local myprog.sh[17602]: Welcome to my program 
-</code> 
- 
----- 
- 
-==== Example: Logs ==== 
- 
-<code bash> 
-journalctl -f 
--- Logs begin at Fri 2015-12-25 22:36:05 CST. -- 
-Jan 24 10:30:08 server1.local systemd[1]: Starting My Awesome Program... 
-Jan 24 10:30:08 server1.local myprog.sh[17602]: Welcome to my program 
-Jan 24 10:30:08 server1.local logger[17605]: /usr/local/bin/myprog.sh has started on Sun Jan 24 10:30:08 CST 2016 
-Jan 24 10:30:08 server1.local logger[17606]: /usr/local/bin/myprog.sh is still running... 
-Jan 24 10:30:38 server1.local logger[17683]: /usr/local/bin/myprog.sh is still running... 
-Jan 24 10:31:08 server1.local logger[17693]: /usr/local/bin/myprog.sh is still running... 
-</code> 
- 
----- 
  
  • linux_wiki/systemd_service_script.txt
  • Last modified: 2019/05/25 23:50
  • (external edit)