Panduan ini akan membahas cara untuk menjalankan skrip saat startup dan shutdown pada linux server. Menjalankan skrip saat startup biasanya dibuat untuk contoh kasus seperti menjalankan web server dengan nodejs atau framework lain agar tetap dapat diakses baik lewat port tertentu atau melalui proxy nginx.
Create Sample Script #
Untuk sample skrip yaitu membuat interface bridge dengan ip link
yang mana jika dijalankan secara manual maka saat server direboot interface akan hilang (temporary).
#!/usr/bin/env bash
ip link add br0 type bridge
Untuk file skrip dapat diletakan di /usr/local/bin
dan diberi permission execute.
chmod +x /usr/local/bin/bridge.sh
Create unit file to run script with systemd #
Buat file /etc/systemd/system/br0.service
lalu edit seperti berikut.
[Unit]
Description=Buat port br0
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/bridge.sh
[Install]
WantedBy=multi-user.target
Reload systemd config.
systemctl daemon-reload
Enable service agar dapat dijalankan saat startup dan start service untuk pengetesan.
systemctl enable br0
systemctl start br0
Service akan langsung inactive setelah berhasil menjalankan skrip
# systemctl status br0
● br0.service - Buat port br0
Loaded: loaded (/etc/systemd/system/br0.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Fri 2023-07-21 18:22:22 WIB; 1s ago
Process: 3426 ExecStart=/usr/local/bin/bridge.sh (code=exited, status=0/SUCCESS)
Main PID: 3426 (code=exited, status=0/SUCCESS)
Jul 21 18:22:22 man.srv.host systemd[1]: Started Buat port br0.
Jul 21 18:22:22 man.srv.host systemd[1]: br0.service: Succeeded.
Cek interface bridge dengan ifconfig
atau ip
ifconfig br0