Saya menggunakan Archlinux dan mulai mencoba systemd hari ini.
Namun, saya menemukan bahwa systemd tidak memuat skrip /etc/rc.local saya.
Seperti yang disebutkan di halaman Wiki, saya memang sudah lari systemctl enable rc-local.service
, tetapi ini tidak membantu.
Konten file /etc/rc.local saya adalah:
echo -n 120 > /sys/devices/platform/i8042/serio1/speed
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
iptables --table nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
Ada saran?
arch-linux
Felix Yan
sumber
sumber
/etc/systemd/system/multi-user.target.wants/rc-local.service
dan/lib/systemd/system/rc-local.service
systemctl enable rc-local.service
. Jika Anda terus mengalami masalah, silakan kirim output darisystemctl status rc-local.service
.multi-user.target.wants
persis apa yang memungkinkannya .Dengan systemd 188-2, systemd mengeluh tentang tidak memiliki
[Install]
bagian dan karena itu tidak dapat mengaktifkan layanan rc.local. Mungkin memang demikian halnya dengan versi sebelumnya, tetapi karena Arch devs yang baru saja mengumumkan systemd akan menjadi default, saya memperbaiki sistem saya.Untuk memperbaikinya, tambahkan saja bagian untuk target multiuser di
/etc/systemd/system/rc-local.service
:Buat
/etc/rc.local
skrip dan buat agar dapat dieksekusichmod +x /etc/rc.local
sumber
rc-local.service
tidak pernah ada layanan yang diaktifkan melaluisystemctl enable
tetapi sejak 2011 telah menjadi layanan yang diaktifkan secara otomatis oleh generator . Namun Arch Linux, seperti yang dijelaskan di unix.stackexchange.com/a/471871/5132 , tidak mengaktifkan opsi kompatibilitas mundur di systemd yang menyediakan generator di tempat pertama.Pkgfile (di sistem saya) mengatakan:
Paket itu menginstal hal-hal lain yang mungkin tidak Anda inginkan, tetapi Anda dapat menonaktifkannya. Lihat juga: https://wiki.archlinux.org/index.php/Systemd#The_initscripts-systemd_package
sumber
Jangan lupa untuk membuat rc.local dapat dieksekusi - atau lapisan kompatibilitas tidak akan menjalankannya! Dalam contoh di atas yang tercantum - Anda akan menjalankan chmod a + x untuk membuat file rc.local dapat dieksekusi. Sebagai berikut:
Saya pikir masalah lain yang mungkin terjadi adalah lokasi skrip rc.local Anda! Jika Anda belum menambahkan kompatibilitas ke systemd (yang harus dibangun di - dan tampaknya oleh menyebutkan sebelumnya sudah ada) Anda mungkin perlu memeriksa lokasi file Anda ... Pada OS saya, saya memiliki rc-lokal di /etc/rc.d/rc.local jadi saya menjalankan yang berikut:
sumber
systemd
file layanan dapat dieksekusi, seperti yang ditunjukkan dalam cuplikan kode pertama Anda. Juga, di Arch Linux, path file-nya/etc/rc.local
- mungkin konten darisystemd
file service salah.Dua gotcha umum:
Jangan lupa untuk membuat
/etc/rc.d/rc.local
executable. Kamu bisa memakaiuntuk membuatnya dieksekusi.
Jangan lupa untuk meletakkan
#!/bin/sh
baris di baris pertama/etc/rc.d/rc.local
. Begini tampilannya:Jika Anda tidak mendapatkan hasil yang serupa, edit
/etc/rc.d/rc.local
untuk menambahkan baris di bagian paling atas yang berisi saja#!/bin/sh
.sumber
Jika Anda memiliki
/etc/rc.local
file yang dapat dieksekusi, file tersebut akan ditarik ke proses boot olehsystemd-rc-local-generator
/rc-local.service
.Paling tidak
/etc/rc.local
adalah jalur default yang digunakannya, tetapi ini ditetapkan oleh distribusi. Karena ini terutama untuk kompatibilitas mundur, dan distribusi yang berbeda menggunakan jalur yang berbeda. Misalnya di Fedora, jalannya/etc/rc.d/rc.local
. Anda dapat memeriksa jalur sebagai berikut:Sepertinya ini tidak terlalu dikenal. Ada beberapa posting yang menunjukkan versi file sebelumnya, yang tidak memiliki komentar seperti itu.
sumber