В systemd 4 цели. то, что вам нужно, - это Emergency.target Думаю, вы можете попробовать следующие шаги:
6.append systemd.unit = required.target
Это метод rhel7. Я думаю, что это может быть похоже на suse. Когда вы входите в аварийный режим, пароль root по-прежнему требуется. удачи :)
Когда вы пишете«обычно» , это звучит как состояние гонки. Затем случайным образом определяется, какой из экземпляров выживет.
Нет основной проблемы в том, что вы пытаетесь сделать с помощью rc-скриптов. Сценарии rc только запускают команды. Однако то, что вы пытаетесь запустить, должно иметь возможность запускаться в нескольких экземплярах. Система rc ничего не делает (как таковая )волшебным образом для этого.
Из того, что вы описываете, я могу предположить, что части проекта 1 и 2 используют одни и те же ресурсы, поэтому node.js может запускать только один экземпляр. Например, оба проекта привязаны к одному и тому же порту. Два экземпляра не могут обслуживать один и тот же порт -, поэтому только первый запустит (гонку ).
Чтобы отладить это -, начните с проверки правильности обработки нескольких экземпляров. Попробуйте отключить сценарии запуска. Затем запустите оба проекта вручную одновременно.
Сначала бежишь:
/usr/local/bin/node /usr/home/ec2-user/dev/projects/my_project_1/index.js
А потом:
/usr/local/bin/node /usr/home/ec2-user/dev/projects/my_project_2/index.js
Когда узел выводит данные в STDOUT, а ошибки отправляются в STDERR, становится легче увидеть, что пошло не так. Я почти уверен, что ваша проблема лежит где-то здесь, и что вывод может помочь вам в дальнейшем расследовании.
Если описанное выше действительно работает (вопреки моим подозрениям ), тогда вам нужно получить вывод журнала из процессов начального узла в сценарии запуска. Не похоже, что node.js ведет журнал в файл или системный журнал. Это означает, что если вы попытаетесь запустить rc-скрипт вручную, вы должны получить сообщение об ошибке на экране. Поэтому попробуйте управлять своим rc-скриптом с помощью:
service my_service_1 start
Чтобы глубже изучить ведение журнала, посмотрите , где находится файл журнала nodejs --.
ПРИМЕЧАНИЕ:Вы играете со своими собственными сценариями в /etc/rc.d/your_script
, которые предназначены для базовой системы. Вы должны поместить свои скрипты в /usr/local/etc/rc.d/your_script
. Команда service
выполняет поиск в обоих местах, поэтому она будет работать одинаково. Никаких изменений в /etc/rc.conf
также не потребовалось.