Вопрос или проблема
Недавно я обновился с версии 24.04 на 24.04.1, и ни один из моих файлов systemd для игровых серверов steamcmd не работает. Конкретно проблема связана с частью обновления сервиса. Execstartpre=/usr/games/steamcmd
кажется, является проблемой. Статус и journalctl показывают, что завершение с кодом 2 и переменная home вызывает проблемы. Если я удаляю строку execstartpre, сервис работает. Я вручную обновил игры через steamcmd, и появилась заметка, что steam не был закрыт корректно. У меня также есть сообщение, что /tmp/dumps не наши
в steamcmd. Я искал везде и не нашел подобной проблемы здесь или где-либо еще в интернете.
Ответ или решение
Учитывая вашу проблему с обновлением сервисов systemd для steamcmd после перехода с версии 24.04 на 24.04.1, давайте разберем возможные причины и решения.
Фон
Ваша проблема связана с тем, что сервис не может корректно выполнить команду перед запуском (ExecStartPre
) из-за кода выхода 2 и проблем с переменной окружения домашней директории. Это может быть вызвано изменениями в конфигурации или зависимостях после обновления.
Проблема с ExecStartPre
ExecStartPre=/usr/games/steamcmd
является командой, которая должна выполняться перед основным запуском сервиса. Если эта команда завершает выполнение с ошибкой (код 2), это указывает на то, что имеются проблемы с самими настройками или окружением.
-
Проверка пути и доступа:
Убедитесь, что путь кsteamcmd
действительно корректен. В терминале выполните:ls -la /usr/games/steamcmd
Это покажет, доступен ли файл и имеет ли он нужные права доступа. Убедитесь также, что у пользователя, под которым выполняется сервис, есть доступ к этому файлу.
-
Переменные окружения:
При использовании systemd переменные окружения могут быть не заданы или неверны. Убедитесь, что у вас правильно настроена домашняя директория. Вы можете установить её явно в файле службы:[Service] Environment=HOME=/path/to/your/home ExecStartPre=/usr/games/steamcmd
Сообщение об ошибке /tmp/dumps is not ours
Это сообщение указывает на то, что директория /tmp/dumps
не принадлежит процессу, выполняющему steamcmd. Проверьте права доступа, выполнив:
ls -la /tmp/dumps
Если директория принадлежит другому пользователю или группе, это может вызвать проблемы. Измените владельца или группу, если это необходимо:
sudo chown -R youruser:yourgroup /tmp/dumps
Заключение
Чтобы устранить неполадки, выполните следующие действия:
- Проверьте и при необходимости исправьте путь и права доступа к
steamcmd
. - Убедитесь, что переменная окружения
HOME
установлена правильно. - Проверьте и корректируйте права доступа к директории
/tmp/dumps
.
Примечание
Если после выполнения вышеуказанных шагов проблема продолжает сохраняться, вам следует просмотреть журналы systemd с помощью journalctl -xe
, чтобы получить более подробную информацию о том, почему ExecStartPre
завершается с ошибкой.
С учетом всех этих настроек вы должны восстановить работоспособность ваших сервисов steamcmd. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь запрашивать поддержку более целенаправленно.