Solusi File "rc.local" Hilang Pada Debian 9


Ketika saya hendak melakukan konfigurasi NAT pada debian yang saya gunakan, saya tidak menemukan file rc.local, dimana biasanya file tersebut digunakan untuk menuliskan konfigurasi rule NAT. Kebetulan sistem operasi yang saya gunakan adalah Debian 9.

Solusi File 'rc.local' Hilang Pada Debian 9

Kemudian saya coba cek status dari service tersebut dan hasilnya kurang lebih seperti ini :
root@diaryconfig:~# systemctl status rc-local
? rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset:
enabled)
  Drop-In: /lib/systemd/system/rc-local.service.d
           +-debian.conf
   Active: inactive (dead)
Condition: start condition failed at Wed 2018-08-29 11:30:49 WIB; 8mi
n ago

Ketika saya coba mengaktifkan service tersebut muncul output seperti ini :
root@diaryconfig:~# systemctl enable rc-local
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
   instance name specified.

Ternyata service tidak bisa diaktifkan. Dari output di atas, disebutkan bahwa error terjadi karena tidak adanya installation config. Installation config tersebut seharusnya terletak di dalam file rc-local.service. File rc-local.service sendiri letaknya berada di direktori /etc/systemd/system.

Baca Juga :


Setelah saya cek, ternyata tidak ada file rc-local.service di dalam direktori tersebut. Oleh karena itu, kita perlu membuat dan mengkonfigurasi ulang file rc-local sehingga nantinya service tersebut dapat dijalankan kembali.

Berikut adalah solusinya :
Buat file rc-local.service pada direktori /etc/systemd/system.
root@diaryconfig:~# nano /etc/systemd/system/rc-local.service

Kemudian isi file tersebut dengan konfigurasi seperti berikut :
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Konfigurasi di atas saya dapat dari pencarian di internet. Dan memang saya sendiri juga kurang paham arti dari tiap-tiap baris konfigurasinya. Silahkan langsung di copy saja atau bisa ditulis manual.

Simpan file, kemudian selanjutnya adalah membuat file rc.local pada direktori /etc.
root@diaryconfig:~# nano /etc/rc.local

Berikut adalah default isi dari file rc.local, silahkan disalin :
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0
Simpan file.

Tambahkan permission execute pada file rc.local tersebut.
root@diaryconfig:~# chmod +x /etc/rc.local

Kemudian aktifkan service rc-local.
root@diaryconfig:~# systemctl enable rc-local
Created symlink /etc/systemd/system/multi-user.target.wants/rc-local.service ? /etc/systemd/system/rc-local.service.

Jalankan service rc-local lalu lihat juga statusnya.
root@diaryconfig:~# systemctl start rc-local
root@diaryconfig:~# systemctl status rc-local
? rc-local.service - /etc/rc.local
   Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset:
 enabled)
  Drop-In: /lib/systemd/system/rc-local.service.d
           +-debian.conf
   Active: active (exited) since Wed 2018-08-29 11:57:32 WIB; 27s ago
  Process: 920 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)

Aug 29 11:57:32 diaryconfig systemd[1]: Starting /etc/rc.local...
Aug 29 11:57:32 diaryconfig systemd[1]: Started /etc/rc.local.
Selesai.

Sekarang kita sudah bisa menggunakan file rc.local. Semoga membantu.


Load Comments