Выполнение команды screen
из cron
и захват ее stderr сообщает следующее сообщение:
Must run suid root for multiuser support.
Быстрый поиск приводит к обнаружению, что это сообщение печатается, когда screen
не имеет tty
устройства, из которого он может создать свое имя сеанса. (Обычно имя сеанса имеет вид 11597.pts-0.myhostname
.) Дальнейшее чтение страницы руководства показывает, что можно использовать флаг -S
чтобы указать имя сеанса:
screen -md -S "atboot.$(hostname)" ...
В метке "atboot" нет ничего особенного; Я использовал его, чтобы напомнить мне, что процесс был запущен во время загрузки и у меня нет tty.
Объединение этого со спецификацией crontab
приводит к следующему:
# m h dom mon dow command
@reboot echo "test" > /home/dataserv/reboot.txt 2>&1
@reboot screen -d -m -S "atboot.$(hostname)" /home/dataserv/www/start_production_server.sh
Выполнение screen -ls
даст примерно следующий результат:
11732.atboot.myhostname (03/01/16 00:25:01) (Detached)
Как видите, эхо-запрос ping поступает на E1 и уходит на E0, поэтому на ER все работает как надо.
Однако у вас есть проблема с PR :, когда приходит эхо-ответ ping, он будет иметь адрес назначения 2600:...:5b11:...:f48
. Однако PR знает только о подсети 5b10/60
за P0, он понятия не имеет, что существует также подсеть 5b11/64
, доступная через E0. Таким образом, мое предположение(следует проверить на дампах интерфейса )в том, что PR выполняет запрос соседа для 2600:...:5b11:...:f48
на P0, но ER не отвечает (, потому что это не так. владеть этим адресом ), поэтому PR отбрасывает пакет.
Я никогда не пытался настроить IPv6 с автономной подсетью таким образом, поэтому не знаю, что порекомендовать.Первое, что я бы попробовал, это также объявить 5b11/64
на E0 и посмотреть, заставит ли эта дополнительная информация P0 пересылать пакеты.
Редактировать
Я нашел ndppd , демон прокси протокола обнаружения соседей. Если PR действительно посылает запрос соседу, на который не получает ответа, использование ndppd на ER может решить эту проблему.
Сам пока не пользовался.