Я устанавливаю квоту на моем сервере Linode под управлением Ubuntu 16.10, и я получаю следующую ошибку
Невозможно stat () подключенное устройство / dev / root: нет такого файла или каталога
Таким образом, чтобы исправить это, я достиг этой темы для исправления, которое делается путем добавления
ln -s /dev/xvda /dev/root
/etc/init.d/quota restart
к /etc/rc.local
. Но Ubuntu 16.10 больше не использует rc.local
, а использует systemd . Какая альтернатива для rc.local
, Как я могу выполнить вышеупомянутые команды при запуске?
Также я включил использование сервиса, systemctl enable rc-local.service
но у меня это не сработало. Любое руководство будет оценено.
Ответы:
вступление
Я думаю, что вы не должны создавать новый сервис, как предложено в ссылке Джорджа.
rc-local.service
Уже существует в Systemd и файл службы предполагает , чтоrc.local
, если он существует и является исполняемым, получает вытащил автоматически вmulti-user.target
. Так что нет необходимости воссоздавать или форсировать то, что просто сделано другим способомsystemd-rc-local-generator
.Одно решение
Быстрый обходной путь (я не знаю, является ли это каноническим способом):
В терминале делаем:
После этого
rc.local
будет вызвано при запуске системы. Вставьте то, что вы хотите.Фон
Если вы делаете в терминале:
Вы можете видеть, что заголовок комментария содержит такие строки, как:
Это указывает на то, что в этой системе, если существует файл с именем,
/etc/rc.local
который является исполняемым, он будет автоматически загружен в multi-user.target. Таким образом, вы просто создаете соответствующий file (sudo touch...
) и делаете его исполняемым (sudo chmod +x ...
).источник
#!/bin/bash
, используйте,#!/bin/sh
если вам действительно не нужен bash в вашем скрипте. Все другие системные сценарии используют тире, а не bash, из соображений производительности.rc-local
, не позволяет упорядочить это после какого-то другого модуля, не так ли?Я видел это решение, которое предполагает использование
systemd
здесь :Создать сервис:
Добавьте туда свой код:
Создайте и убедитесь, что
/etc/rc.local
он исполняемый и добавьте в него этот код:Включить сервис:
Запустите сервис и проверьте статус:
Если все пойдет хорошо , вы можете добавить свои
code
в/etc/rc.local
файл затем перезапустить его.Примечание: протестировано на Lubuntu 16.10.
Источник:
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd
источник
touch "hello"
доexit 0
. Служба, кажется, активна, но она не создает никаких файлов в / etc / dir.Чтобы добавить к ответу Яна, что, в отличие от обычного
rc.local
файла,rc-local service
он выполняется не после запуска всех служб, а после того, как сеть выходит в сеть.В некоторых случаях вы можете запускать команды
rc.local
позже. Например, я хотел, чтобы он выполнялся послеlxd
запуска.В этом случае вы можете редактировать
rc-local service
зависимости при запуске, создавая раскрывающийся файл conf:/etc/systemd/system/rc-local.service.d/override.conf
с содержимым:Где вы можете добавить имя необходимого юнита (как я добавил
lxd.service
)Не забудьте
systemctl daemon-reload
после этого.источник