Служба, остановленная вручную, не остановлена ​​должным образом

1 )пароли :вы можете изменить загрузочный образ этих устройств и записать в него ключ на постоянной основе, поэтому вам никогда не нужно вводить пароль. посмотрите, возможно ли это... не уверен, какие устройства вы используете.

2 )поместите следующий код в ~/.ssh/config

     Host * 
        StrictHostKeyChecking no
        UserKnownHostsFile=/dev/null

это настроит вас.

0
01.03.2020, 00:26
2 ответа

Я решил это, хотя это может быть уродливо.

Вместо разрешения proxy.service Requires=server.serviceя разрешаю использование proxy.service BindTo=server.service. Таким образом, proxy.service правильно завершает работу, если server.service останавливается или дает сбой.

Теперь server.service все еще работал в состоянии loaded deactivating stop, когда по какой-то причине не мог перезапуститься. Я допускаю сбой процесса после завершения скрипта с помощью exit 1, поэтому server.service переходит в состояние loaded failed failed.

Поскольку proxy.service по-прежнему требуется server.service, он перезапускается, и все работает, как задумано.

0
28.04.2021, 23:21

server.serviceотносится к разновидности Type=simple(по умолчанию, если указано ExecStart=).

Относительно его ExecStop=есть интересный момент в документации

Note that the commands specified in ExecStop= are only executed when the service started successfully first. They are not invoked if the service was never started at all, or in case its start-up failed, for example because any of the commands specified in ExecStart=, ExecStartPre= or ExecStartPost= failed (and weren't prefixed with "-", see above) or timed out... Also note that the stop operation is always performed if the service started successfully, even if the processes in the service terminated on their own or were killed. The stop commands must be prepared to deal with that case.

Из вашего вопроса следует, что server.serviceзавершается "само по себе" (, скорее, через отправку контента через FIFO ). systemd увидит это и вызовет ExecStop. Это может быть связано с выполнением дополнительных операций FIFO, которые зависают, вызывая «деактивацию».

Вы должны убедиться, что команды ExecStartи ExecStopзавершаются с нулевым статусом и не зависают, чтобы systemd зарегистрировал службу как неактивную.

1
28.04.2021, 23:21

Теги

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