Сомнения с командой: pkill -INT -f ‘^ php test_program.php $’

ВОПРОС: Что делает каждый элемент команды:

pkill -INT -f '^php test_program.php$'

делать, когда я запускаю его в терминале Linux? Я уже знаю, что команда убивает процесс под названием test_program.php, но я не знаю, что делают все различные элементы команды. Пожалуйста, объясните в максимально простой терминологии! Я новичок в командах Linux, и я предпочитаю Baby Lingo техническому Lingo в настоящее время 🙂


МОЕ ИССЛЕДОВАНИЕ: Запустив man pkill в терминале linux появляется руководство со следующим pkill определение:

  • сигнальные процессы, основанные на их имени или других атрибутах.

что заставляет меня верить, что pkill не только убивает процесс, но и может посылать много разных сигналов, один из которых может убить процесс. Структура / краткий обзор pkill Команда отображалась как: pkill [option] pattern

Из списка опций в том же руководстве, -f, -full имел следующее определение:

  • Шаблон обычно сопоставляется только с именем процесса. Когда -f установлен, используется полная командная строка.

Я не совсем понял, что это значит. Также есть -INT перед -f в команде, так что это наводит меня на мысль, что несколько вариантов могут быть объединены вместе, однако -INT не был отображен в руководстве.

Другие части команды, кажется, идентифицируют программу, которая выполняется: '^php test_program.php$'но почему эта часть команды не 'test_program.php'? Что значит ^php в начале и $ а конец делать?

0

Решение

Вы смотрите на регулярное выражение. Это выражение ищет строку test_program.php где-нибудь в имени процесса. Так что, если имя процесса будет что-то вроде

/var/php -runcommand test_program.php

он найдет процесс и убьет его.

Это также объясняет -f, -full вариант. Если вы не используете регулярное выражение, вам потребуется полное имя процесса (предыдущая строка), чтобы соответствовать процессу.

Наконец, -INT обычно используется для отправки уровня выполнения задачи.

РЕДАКТИРОВАТЬ

Я был неправ -INT опция не используется для уровней запуска (которые для ядра Linux), но для отправки сигналы к задаче. Это может быть что-то вроде Term (Прервать), Stop (выключить) или Cont (продолжить процесс). pkill по умолчанию отправляет сигнал завершения в процесс.

/var/php -runcommand test_program.php был примером для процесса. Если вы используете команду ps ax, вы получаете список всех процессов и программ, которые их выполняют. Так что я просто предположил, что интерпретатор PHP находится в /var/php/ и выполнение файла php является командой.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]