Я заставил его работать, изменив
WantedBy=multi-user.target
-
WantedBy=basic.target
, затем добавление sleep 10
в начало сценария оболочки, а затем отключение/повторное включение службы systemd. Теперь при перезагрузке скрипт вступает в силу.
У вас не может быть имени хоста, содержащего точки, подобные тому, которое вы нам показали
a.long.hostname.with.lots.of.required.fields.areallongexample.com
У вас не может быть даже a.long
по той же причине, что :оно содержит точку. Имя хоста — это первый пунктирный компонент полного доменного имени (Fully Qualified Domain Name ); домен для этого хоста — это оставшаяся часть вашего пунктирного пути.
Также существуют ограничения по длине составных частей (63 байта -не обязательно символы )и длина всего доменного пути (255 байт ). Подробности в RFC 1035 .
Если вам было дано a.long.hostname.with.lots.of.required.fields
в качестве имени хоста (менее 63 байт )и доменного имени areallongexample.com
, фактически имя хоста будет a
, а имя домена — long.hostname.with.lots.of.required.fields.areallongexample.com
.
С тех пор я решил эту проблему. Я установил свое имя хоста на «a.long.hostname.with.lots.of.required.fields» через hostnamectl. Изменено /etc/hosts, чтобы иметь полное доменное имя и сокращенную версию (a.long.hostname.with.lots.of.required.fields)
Сервер выводит полное имя при выполнении hostname -f и сокращенное имя хоста при выполнении hostname.
[root@a /]# hostnamectl set-hostname a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname
a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname -f
a.long.hostname.with.lots.of.required.fields.areallongexample.com
[root@a /]# cat /etc/hosts | grep required
127.0.0.1 a.long.hostname.with.lots.of.required.fields.areallongexample.com a.long.hostname.with.lots.of.required.fields
[root@a /]# hostname -f | wc -c
66