Поиск по сайту:

Как устранять проблемы запуска приложения Linux с командой журнала

В редких случаях, когда вы обнаружите, что приложение или сервис Linux не начинается должным образом, есть удобная команда, готовая помочь вам выяснить проблему.

Что -то редко идет не так с Linux, но это не означает, что операционная система невосприимчива к проблемам. Время от времени я устанавливаю новую службу или приложение, а затем перейду, чтобы начать с команды:

Sudo SystemCtl Имя начала

Где имя является названием приложения или службы.

Были случаи, когда служба отказывается начинать или работать должным образом. Когда это произойдет, куда ты поворачиваешься? Вы всегда можете проверить файлы журналов (обычно лучшее место для запуска) или обратиться к другой команде, которая является компаньоном SystemCtl . Эта команда JournalCtl .

Командный вопрос JournalCtl запрашивает журнал SystemD и перечисляет содержимое журнала, которое может включать в себя представление о том, почему конкретное приложение или служба не работают должным образом. Часто, когда вы пытаетесь запустить службу с systemCtl , если служба не запускается должным образом (или вообще), вы увидите предложение в выводе, чтобы использовать journalctl команда, чтобы узнать, что произошло.

Позвольте мне показать вам, как использовать эту команду, поэтому вам не нужно быть в темноте, почему дела идут не так, как планировалось.

Как использовать JournalCtl

Что вам нужно: единственное, что вам нужно для этой задачи, - это распределение Linux, которое использует SystemD, что является большинством основных распределений.

1. Основное использование

Первое, что вы должны попробовать, это запустить JournalCtl без каких -либо вариантов, что просто:

JournalCtl

То, что вы увидите, это весь вывод журнала Systemd. Из этого вывода вы можете найти информацию, чтобы помочь вам решить вашу проблему.

Когда я запустил команду, было всего 41 линии вывода. Я видел случаи, когда в выводе были сотни строк, которые сделали использование команды без аргументов или параметров немного бесполезными.

К счастью, вы можете отфильтровать много этого шума.

2. Проверка конкретной услуги

Например, у SSH возникают проблемы. Чтобы решить эту проблему, вы можете запустить команду:

SystemCtl -u Ssh

В этом случае -u означает Unit или конкретный системный блок (подумайте «Сервис»).

Вывод вышеприведенной команды может выглядеть примерно так:

12 января 09:55:42 Pop-OS Systemd [1]: Запуск SecureBsd Secure Shell Server ...
12 января 09:55:42 POP-OS SSHD [3424]: Слушание сервера на 0.0.0.0 Порт 22.
12 января 09:55:42 POP-OS SSHD [3424]: Сервер прослушивание на :: Порт 22.
12 января 09:55:42 Pop-OS Systemd [1]: запустил OpenBSD Secure Shell Server.
15 января 09:39:26 Pop-os SSHD [659190]: недействительный пользователь Джекваллена с 192.168.1.77 Port 55040
15 января 09:39:29 Pop-OS SSHD [659190]: PAM_UNIX ( SSHD: AUTH): Проверьте проход; Пользователь неизвестен
15 января 09:39:29 POP-OS SSHD [659190]: PAM_UNIX (SSHD: AUTH): сбой аутентификации; logName=uid=0 euid=0 tty=ssh ruser=rhost=192.168.1.77
15 января 09:39:31 POP-OS SSHD [659190]: Неудачный пароль для недопустимого пользователя Джекваллена с 192.168.177. BR> 15 января 09:39:33 Pop-OS SSHD [659190]: соединение закрыто недопустимым пользователем Джеквалленом 192.168.1.77 Порт 55040 [PREAUTH]
15 января 09:39:39 Pop-OS SSHD [659232]: принято Пароль для Джека с 192.168.1.77 Порт 55049 SSH2
15 января 09:39:39 Pop-OS SSHD [659232]: PAM_UNIX (SSHD: SESSION): сеанс открыт для User Jack (UID=1000) By (UID=0 )

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

3. хвоста вывода

Есть еще лучший способ устранить устранение услуг с JournalCtl . Допустим, SSH работает, но испытывает проблемы с принятием соединений (или почти любой другой проблемой, которая может произойти). Вы можете «выдержать» вывод (который печатает информацию в реальном времени, как это происходит), как и так:

Journaltcl -xefu ssh

Эта команда не только расскажет вам о запуске и статусе работы службы, но и перечисляет самые последние записи, зарегистрированные в журнале для этой услуги. Чтобы закрыть, используйте сочетание клавиш CTRL+C. Для тех, кто хочет знать, вот объяснение вариантов:

  • x - Добавьте объяснение в строки журналов из каталога сообщений
  • E - немедленно прыгайте до конца журнала внутри подразумеваемого пейджера
  • F - Следуйте (непрерывно печатайте новые записи по мере их регистрации)
  • U - единица (как объяснено выше)

4. Просмотр временного диапазона

Также возможно просмотреть определенный временной диапазон с JournalCtl . Скажем, вы хотите просмотреть только записи, зарегистрированные, начиная с 20 января в 10:00. TheCommand будет:

JournalCtl-с сами "2025-01-20 10:00:00"

Вы увидите каждую запись, зарегистрированную с 10:00 до текущего времени.

Вы можете сделать этот диапазон еще более конкретным. Скажем, вы хотите просмотреть записи, зарегистрированные с 10:00 до 10:10. Команда будет:

JournalCtl-с сальдо "2025-01-20 10:00:00"-До "2025-01-20 10:05:00"

И это, друзья мои, как вы можете использовать journalctl для устранения проблем запуска приложений на Linux.