после переезда каталога не выполняется автоматический запуск — как найти причину и исправить

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

После переноса каталога программы или скрипта в Arch Linux перестал работать автоматический запуск через systemd, пользовательский unit или файл .desktop. Важно отличить команду с устаревшим абсолютным путём от отсутствия доступа и от недоступности нового носителя при загрузке.

В этой статье
  1. Симптом и границы применимости
  2. Возможные причины и признаки
  3. Подробная диагностика и безопасные действия
  4. Как понять, что проблема устранена
  5. Что делать, если не помогло

#Симптом и границы применимости

После переноса каталога программы или скрипта в Arch Linux перестал работать автоматический запуск через systemd, пользовательский unit или файл .desktop. Важно отличить команду с устаревшим абсолютным путём от отсутствия доступа и от недоступности нового носителя при загрузке.

#Возможные причины и признаки

Возможная причинаКак узнатьЧто делать
ExecStart использует прежний путьПосле переноса запись unit всё ещё ссылается на удалённый файл.systemctl status сообщает status=203/EXEC или No such file.Изменить полный путь в своём unit.
Изменился WorkingDirectory или файл окруженияПрограмма ожидает относительные файлы в старой директории.Журнал содержит CHDIR, путь конфигурации или EnvironmentFile отсутствует.Проверить обе директивы, а не только ExecStart.
Каталог на поздно монтируемом разделеРесурс доступен после входа, но ещё отсутствует на этапе запуска.В журнале ранней загрузки нет нужного тома.Уточнить зависимости от точного Mount unit.

#Подробная диагностика и безопасные действия

  1. 1. Узнайте, какой механизм запуска используетсяОткройте терминал: система может запускать программу как systemd service, user service или desktop autostart. Начните с поиска имени в unit; для пользовательского процесса смотрите systemctl --user, а для графического автозапуска каталог ~/.config/autostart.
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    systemctl status ИМЯ.service --no-pager
    systemctl --user status ИМЯ.service --no-pager
    ls ~/.config/autostart/
  1. 2. Посмотрите исходные пути и переопределенияДля systemd важны ExecStart, WorkingDirectory и EnvironmentFile, включая drop-ins. systemctl cat покажет определения, systemctl show — собранные свойства; отсутствие файлов конфигурации из-за переноса означает точную причину.
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    systemctl cat ИМЯ.service
    systemctl show ИМЯ.service -p ExecStart -p WorkingDirectory -p EnvironmentFiles
  1. 3. Найдите файл в новом расположенииУкажите фактический новый каталог без догадок. Для каталогов с пробелами используйте кавычки в обычной оболочке, а в ExecStart правила экранирования systemd отличаются от Bash. file поможет понять, запускаемый ли это скрипт или двоичный файл.
  2. Диагностическая команда в терминале Arch Linux, без изменения настроек
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    ls -la /НОВЫЙ/КАТАЛОГ
    file /НОВЫЙ/КАТАЛОГ/ПРОГРАММА
    namei -l /НОВЫЙ/КАТАЛОГ/ПРОГРАММА
  1. 4. Проверьте монтирование нового носителяЕсли перенос был на отдельный диск, определите точку и проверьте её доступность во время загрузки. На сервере не добавляйте After=network.target вместо зависимости от тома, если сеть к этому не относится.
  2. Диагностическая команда в терминале Arch Linux, без изменения настроек
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    findmnt -T /НОВЫЙ/КАТАЛОГ
    lsblk -f
    journalctl -b -u ИМЯ.service --no-pager -n 90
  1. 5. Проверьте права и запуск под штатной учётной записьюПрочитайте User/Group из unit и владельца нового каталога. Если сам файл доступен, но не доступны его родительские каталоги или библиотека, массовая смена владельца не поможет безопасно. Зафиксируйте нужные конкретные права.
  2. Диагностическая команда в терминале Arch Linux, без изменения настроек
    Linux · Терминал (Bash)Команда
    Диагностическая команда в терминале Arch Linux, без изменения настроек.
    systemctl show ИМЯ.service -p User -p Group
    stat -c "%U:%G %a %n" /НОВЫЙ/КАТАЛОГ/ПРОГРАММА
  1. 6. Исправьте только рабочую конфигурациюСохраните исходный unit и используйте systemctl edit для точечного исправления. В drop-in для ExecStart его обычно сначала сбрасывают пустым ExecStart=, затем задают новую строку; редактирование допустимо лишь после изучения реального unit и документации программы.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Меняет автозапуск выбранной службы; обязательно сохраните исходный unit для возврата.
    sudo systemctl edit ИМЯ.service
    sudo systemctl daemon-reload
    systemctl cat ИМЯ.service

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 7. Запустите и подтвердите работоспособностьПосле исправления запустите одну службу в согласованное время и проверьте её фактическое действие. При ошибке 203/EXEC ищите неправильный путь или интерпретатор скрипта; при 200/CHDIR — несуществующий рабочий каталог.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Выполняйте в терминале Arch Linux; изменяйте только указанную и предварительно проверенную настройку.
    sudo systemctl restart ИМЯ.service
    systemctl status ИМЯ.service --no-pager
    journalctl -b -u ИМЯ.service --no-pager -n 50

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Как понять, что проблема устранена

Повторите исходное действие, из-за которого возникла неисправность, и сверяйте не только код завершения команды, но и прикладной результат. Сохраните вывод последней диагностической команды и записи журнала до и после исправления. Если ошибка повторяется, верните только изменённую настройку из резервной копии и передайте специалисту точный симптом, имя программы/службы, версию системы и необходимые фрагменты журнала без паролей и закрытых ключей.

#Что делать, если не помогло

Не применяйте случайные советы для другого дистрибутива: в Arch Linux особенно опасны частичные обновления пакетов, а в Rocky Linux — отключение SELinux или неконтролируемый перезапуск системных служб. Остановитесь после неуспешного безопасного шага, зафиксируйте фактическое сообщение и вернитесь к соответствующей причине. Для загрузки, разделов диска и единственного удалённого подключения используйте резервную копию и локальную консоль.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.