rc.local Не работает Debian 8

Команда s /// ожидает, что параметр «search» будет регулярным выражением . Большинство версий sed должны поддерживать соответствие \ b , которое является совпадением нулевой ширины на границе слова без слова или края слова. «Слово» в этом случае определяется как символ, который представляет собой букву, цифру или знак подчеркивания ( _ ). Например, если мы предположим, что строка c ++ находится в отдельной строке в вашем файле, \ b будет соответствовать в следующих позициях:

  1. Непосредственно перед c .
  2. Между c и первым + .
  3. Сразу после последнего + .

Следующая команда должна дать вам желаемый результат:

sed -i 's/\bhi\b/hotel/g' hi.txt

Слово this не будет соответствовать, потому что перед h стоит символ слова ( t ), а за i следует символ слова ( s ). Однако строка This is hi.txt будет соответствовать второму экземпляру hi , потому что окружающее пространство и . - символы, не являющиеся словами.

0
27.12.2016, 05:01
2 ответа

Если вы используете полный systemd, то стандартные скрипты sysvinit игнорируются. Если вы хотите использовать скрипты sysvinit, вам необходимо установить systemd-shim

-1
29.04.2021, 00:06

Забудьте о rc.local .

Как я сказал о CentOS 7 :

Вы используете Debian 8. У вас есть systemd. /etc/rc.local - это механизм двойной обратной совместимости в systemd, потому что это механизм обратной совместимости для механизма, который сам был механизмом совместимости в системе Ван Смуренбурга 5 rc клон.

Как показывает беспорядок в вопросе AskUbuntu, ссылка на который приведена ниже, использование /etc/rc.local может привести к ужасным ошибкам. В другом месте люди были удивлены тем фактом, что systemd не запускает rc.local совершенно таким же образом, в том же месте в начальной загрузке, как они привыкли.Другие были удивлены тем фактом, что то, что они создали в rc.local , ожидая старых способов работы, затем полностью отменяется такими, как новые udev правила, NetworkManager, systemd-logind , systemd-resolved или различные "Наборы".

Забудьте о rc.local . Это не выход. У вас есть Debian 8. Так что создайте надлежащую служебную единицу systemd и не начинайте с точки, которая находится на расстоянии двух уровней обратной совместимости. (В Ubuntu он удаляется трижды, последовавший за ним клон System 5 rc был затем сам дважды заменен, более десяти лет назад выскочкой, а затем systemd.)

Не запускайте этот процесс с помощью systemd, создав сценарий startup.sh и затем вызвав его из служебного модуля systemd. Эта идея очень быстро приводит к системной территории Дома Ужаса . Создайте служебную единицу, которая максимально подробно описывает настройку и выполнение процесса непосредственно. Используйте сценарий оболочки оболочки только тогда, когда вы попадаете в ограничения этого. И убедитесь, что ваш сценарий оболочки оболочки как минимум использует exec для наложения окончательной программы демона.

Вы не говорите, что это за услуга. Вы упомянули об использовании screen , но это слишком часто используется в качестве супервизора Dmon для бедняков, и вполне может быть не способом запустить вашу службу в фактическом сервисе менеджер.Я действительно вижу там слово «ark», которое в сочетании с потенциальным злоупотреблением screen напоминает о двух вещах:

Дополнительная литература

2
29.04.2021, 00:06

Теги

Похожие вопросы