Konfiguruję limit na moim serwerze Linode z systemem Ubuntu 16.10 i pojawia się następujący błąd
Nie można podłączyć urządzenia stat / (dev / root / root): brak takiego pliku lub katalogu
Aby to naprawić, doszedłem do tego wątku w celu naprawy, która jest dodawana
ln -s /dev/xvda /dev/root
/etc/init.d/quota restart
do /etc/rc.local
. Ale Ubuntu 16.10 już nie używa rc.local
zamiast tego używa systemd . Jaka jest alternatywa dla rc.local
: Jak uruchomić powyższe polecenia podczas uruchamiania?
Również włączyłem tę usługę, systemctl enable rc-local.service
ale to nie działało dla mnie. Każdy trop byłby mile widziany.
Odpowiedzi:
Wprowadzenie
Myślę, że nie powinieneś tworzyć nowej usługi, jak sugeruje link George. Plik
rc-local.service
już istnieje w pliku systemd, a plik usługi sugeruje, żerc.local
jeśli plik istnieje i jest wykonywalny, zostanie automatycznie wciągniętymulti-user.target
. Nie trzeba więc odtwarzać ani wymuszać czegoś, co zostało po prostu zrobione w inny sposób przezsystemd-rc-local-generator
.Jedno rozwiązanie
Szybkie obejście (nie wiem, czy to kanoniczny sposób):
W terminalu wykonaj:
Następnie
rc.local
zostanie wywołany przy starcie systemu. Wstaw co chcesz.tło
Jeśli robisz to w terminalu:
Widać, że komentarz główny zawiera wiersze takie jak:
Wskazuje to, że w tym systemie, jeśli istnieje plik o nazwie
/etc/rc.local
wykonywalnej, zostanie on automatycznie wciągnięty do multi-user.target. Więc po prostu utwórz odpowiedni plik (sudo touch...
) i ustaw go jako wykonywalny (sudo chmod +x ...
).źródło
#!/bin/bash
jednak, używaj,#!/bin/sh
chyba że naprawdę potrzebujesz bash w skrypcie. Wszystkie inne skrypty systemowe używają myślnika, a nie basha ze względu na wydajność.rc-local
nie pozwala na zamówienie po innej jednostce, prawda?Zobaczyłem sugerowane rozwiązanie, które obejmuje użycie
systemd
tutaj :Utwórz usługę:
Dodaj swój kod:
Utwórz i upewnij się, że
/etc/rc.local
jest wykonywalny i dodaj do niego ten kod:Włącz usługę:
Uruchom usługę i sprawdź status:
Jeśli wszystko pójdzie dobrze, możesz dodać plik
code
do/etc/rc.local
pliku, a następnie uruchomić go ponownie.Uwaga: Testowano na Lubuntu 16.10.
Źródło:
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd
źródło
touch "hello"
przedexit 0
. Usługa wydaje się być aktywna, ale nie tworzy żadnego pliku w / etc / dir. Działa na Ubuntu 16.04 Arabian 5.31Aby dodać do odpowiedzi Jana, że w przeciwieństwie do zwykłego
rc.local
pliku,rc-local service
jest wykonywany nie po uruchomieniu wszystkich usług, ale po przejściu sieci do trybu online.W niektórych przypadkach możesz chcieć uruchomić polecenia
rc.local
później. Na przykład chciałem, aby został wykonany polxd
uruchomieniu.W takim przypadku możesz edytować
rc-local service
zależności uruchamiania, tworząc plik conf-in conf:/etc/systemd/system/rc-local.service.d/override.conf
z zawartością:Gdzie możesz dodać potrzebną nazwę jednostki (jak dodałem
lxd.service
)Nie zapomnij
systemctl daemon-reload
później.źródło