LINUX.ORG.RU

Не работает rc.local и rc-local.service

 , , , system.d,


0

1

У меня на сервере в Ubuntu 14.04 не было файла rc.local и сервиса. По этой инструкции создал файлы rc.local и rc-local.service и заполнил их как в образце. Выдал им права. Но, когда пытаюсь запустить rc.local получаю ошибку:

# /etc/rc.local start
/bin/sh: 0: Illegal option -

Когда пытаюсь запустить rc.local.service ошибка:

# systemctl start rc-local.service
Job for rc-local.service failed. See 'systemctl status rc-local.service' and 'journalctl -xn' for details.

Смотрю статус rc.local.service:

# systemctl status rc-local.service
rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/etc/systemd/system/rc-local.service; enabled)
   Active: failed (Result: exit-code) since Thu 2019-01-10 18:30:18 UTC; 1min 5s ago
  Process: 58566 ExecStart=/etc/rc.local start (code=exited, status=2)

Содержимое rc.local:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

Содержимое rc-local.service:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local
 
[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99
 
[Install]
 WantedBy=multi-user.target

Помогите. Как это исправить? Мне нужен автозапуск чтобы запустить на сервере дополнительные скрипты против DDOS.



Последнее исправление: user038494794 (всего исправлений: 2)
Ответ на: комментарий от Spoofing
systemctl status rc-local.service
rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/etc/systemd/system/rc-local.service; enabled)
   Active: failed (Result: exit-code) since Thu 2019-01-10 18:49:58 UTC; 45s ago
  Process: 59173 ExecStart=/etc/rc.local start (code=exited, status=2)
user038494794
() автор топика
Ответ на: комментарий от Spoofing
stat /etc/rc.local
  File: ‘/etc/rc.local’
  Size: 318             Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 1054958     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-10 18:13:15.256042959 +0000
Modify: 2019-01-10 18:13:12.000000000 +0000
Change: 2019-01-10 18:13:13.960042874 +0000
 Birth: -
user038494794
() автор топика
Ответ на: комментарий от user038494794

ну, надо додждаться экспертов по systemd, с этого момента я бессилен. :)

почему он status=2, это я так понимаю код выхода, когда он должен быть 0 (успешным) в любом случае — хз.

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

А при чем тут systemd, если он пишет

когда пытаюсь запустить rc.local получаю ошибку

?

systemd так же само зафейлится, если в файле что-то левое.

YAR ★★★★★
()

ТС, попробуй другой шелл указать. Оставь в /etc/rc.local, например, только такое:

#!/bin/bash
exit 0

И да,

/etc/rc.local start

start тут не нужен.

YAR ★★★★★
()

На удаленный:

В том-то и дело, что файл корректен - у меня на машинах есть оба варианта, как с bash, так и с sh. Что-то у тебя с sh не то в системе.

YAR ★★★★★
()

Все, я понял, вроде. Ты содержимое скрипта копипастил? Покажи cat -A /etc/rc.local

Добился такого же поведения:


rain@walkbook:/tmp$ chmod +x rc.local
rain@walkbook:/tmp$ ./rc.local 
rain@walkbook:/tmp$ cat -A ./rc.local 
#!/bin/sh -e$
exit 0$
rain@walkbook:/tmp$ kwrite ./rc.local 
TQSettings: failed to open file '/etc/tqt3/tqt_plugins_3.5rc'
rain@walkbook:/tmp$ cat -A ./rc.local 
#!/bin/sh -e^M$
exit 0^M$
rain@walkbook:/tmp$ ./rc.local 
/bin/sh: 0: Illegal option -

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 2)
Ответ на: На удаленный: от YAR

Попробовал по разному rc.local изменить - никак не работает. Как узнать что с sh? Ошибка говорит что синтаксис неправильный

#!/bin/bash -e
exit 0
: invalid option
#!/bin/bash
exit 0
-bash: /etc/rc.local: /bin/bash^M: bad interpreter: No such file or directory
#!/bin/sh-e
exit 0
/bin/sh: 0: Illegal option -
#!/bin/sh
exit 0
-bash: /etc/rc.local: /bin/sh^M: bad interpreter: No such file or directory
user038494794
() автор топика
Ответ на: комментарий от user038494794

Выше написал. Не важно, вручную или копипастом, важно то, как редактор сохраняет текст.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Спасибо большое! Теперь работает! Никогда бы не догадался что причина в этом

user038494794
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.