Saya mengatur kuota di server Linode saya yang menjalankan Ubuntu 16.10, dan saya mendapatkan kesalahan berikut
Tidak dapat stat () memasang perangkat / dev / root: Tidak ada file atau direktori tersebut
Jadi untuk memperbaikinya, saya mencapai utas ini untuk perbaikan yang dilakukan dengan menambahkan
ln -s /dev/xvda /dev/root
/etc/init.d/quota restart
ke /etc/rc.local
. Tetapi Ubuntu 16.10 tidak digunakan rc.local
lagi melainkan menggunakan systemd . Apa alternatifnya rc.local
, Bagaimana saya bisa menjalankan perintah di atas saat startup?
Saya juga mengaktifkan layanan menggunakan systemctl enable rc-local.service
tetapi tidak berhasil untuk saya. Setiap petunjuk akan dihargai.
Jawaban:
Intro
Saya pikir Anda tidak harus membuat layanan baru seperti yang disarankan dalam tautan oleh George. The
rc-local.service
sudah ada di systemd dan file layanan menunjukkan bahwarc.local
, jika ada dan dieksekusi, akan ditarik secara otomatis kemulti-user.target
. Jadi tidak perlu membuat ulang atau memaksakan sesuatu yang baru saja dilakukan dengan cara lain olehsystemd-rc-local-generator
.Satu solusi
Solusi cepat (Saya tidak tahu apakah itu cara kanonik):
Di terminal lakukan:
Setelah itu
rc.local
akan dipanggil sistem startup. Masukkan apa yang Anda inginkan.Latar Belakang
Jika Anda melakukannya di terminal:
Anda dapat melihat bahwa komentar kepala berisi baris seperti:
Ini menunjukkan, bahwa dalam sistem ini, jika ada file bernama
/etc/rc.local
yang dapat dieksekusi, maka akan ditarik ke multi-user.target secara otomatis. Jadi, Anda cukup membuat file yang sesuai (sudo touch...
) dan menjadikannya executable (sudo chmod +x ...
).sumber
#!/bin/bash
, gunakan#!/bin/sh
kecuali Anda benar-benar membutuhkan bash dalam skrip Anda. Semua skrip sistem lainnya menggunakan tanda hubung, bukan bash, untuk alasan kinerja.rc-local
tidak memungkinkan untuk memesannya setelah beberapa unit lain, bukan?Saya melihat solusi ini disarankan yang melibatkan penggunaan di
systemd
sini :Buat layanan:
Tambahkan kode Anda di sana:
Buat dan pastikan
/etc/rc.local
dapat dieksekusi dan tambahkan kode ini di dalamnya:Aktifkan layanan:
Mulai layanan dan periksa status:
Jika semuanya berjalan dengan baik, Anda dapat menambahkan Anda
code
ke/etc/rc.local
file kemudian restart.Catatan: Diuji pada Lubuntu 16.10.
Sumber:
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd
sumber
touch "hello"
sebelumexit 0
. Layanan ini tampaknya aktif tetapi tidak membuat file di / etc / dir Berjalan di ubuntu 16.04 Arabian 5.31Untuk menambah jawaban Jan bahwa, tidak seperti
rc.local
file biasa ,rc-local service
dijalankan bukan setelah semua layanan dimulai, tetapi setelah jaringan online.Dalam beberapa kasus, Anda mungkin ingin menjalankan perintah dari
rc.local
nanti. Sebagai contoh, saya ingin dieksekusi setelahlxd
mulai.Dalam hal ini Anda dapat mengedit
rc-local service
dependensi startup dengan membuat file conf drop-in:/etc/systemd/system/rc-local.service.d/override.conf
dengan konten:Di mana Anda dapat menambahkan nama unit yang dibutuhkan (seperti yang saya tambahkan
lxd.service
)Jangan lupa
systemctl daemon-reload
setelah itu.sumber