Страница 1 из 1

Теоретический вопрос по grep и завершению процесса

Добавлено: 09 ноя 2018, 17:34
mexx400
Здравствуйте. ROSA10/64/Plasma.
В одном из файлов текущего каталога (содержащего и файлы, и подкаталоги) заведомо существует строка, содержащая слово LDAC.
Ищу:

Код: Выделить всё

grep -i ldac
Поиск зависает от слова совсем. Вопрос #1 - почему зависает?
Далее. Если приостановить процесс Ctrl+z то он:

Код: Выделить всё

7243 pts/2 00:00:00 grep
Однако после:

Код: Выделить всё

kill 7243
-- ничего не происходит -- процесс остается приостановленным. Вопрос #2 - почему не могу убить процесс?
Если поиск сделать:

Код: Выделить всё

grep -ir ldac
-- строка находится условно моментально.

Теоретический вопрос по grep и завершению процесса

Добавлено: 11 ноя 2018, 04:22
Survolog
grep -i 'ldac' ./*.*

pkill

Теоретический вопрос по grep и завершению процесса

Добавлено: 11 ноя 2018, 16:54
mexx400
Survolog писал(а):
11 ноя 2018, 04:22
grep -i 'ldac' ./*.*
КАК найти я знаю, поэтому и вопрос теоретический - ПОЧЕМУ? :)
То есть, как мне казалось, без параметра 'r' grep должен осуществить поиск по файлам текущего каталога, исключая подкаталоги. Или выдать какую-то явную ошибку. Но не молча зависать. Или я не прав?
Survolog писал(а):
11 ноя 2018, 04:22
pkill
Не убивается процесс:

Код: Выделить всё

ps
PID TTY          TIME CMD
14534 pts/2    00:00:00 bash
14653 pts/2    00:00:00 grep
14693 pts/2    00:00:00 ps

Код: Выделить всё

pkill 14653

Код: Выделить всё

ps
PID TTY          TIME CMD
14534 pts/2    00:00:00 bash
14653 pts/2    00:00:00 grep
14837 pts/2    00:00:00 ps

Теоретический вопрос по grep и завершению процесса

Добавлено: 12 ноя 2018, 02:39
va9(2)
mexx400 писал(а):
11 ноя 2018, 16:54
Не убивается процесс
А так?

Код: Выделить всё

kill -s 9 PID

Теоретический вопрос по grep и завершению процесса

Добавлено: 12 ноя 2018, 04:17
mexx400
va9(2) писал(а):
12 ноя 2018, 02:39
А так?
А так убивает, спасибо!

Код: Выделить всё

ps
PID TTY          TIME CMD
13181 pts/1    00:00:00 bash
13337 pts/1    00:00:00 grep
13899 pts/1    00:00:00 ps

Код: Выделить всё

kill -s 9 13337
[1]+  Убито              grep --color -i ldac
А разве "безусловное завершение" не дефолтный сигнал для 'kill'?

Теоретический вопрос по grep и завершению процесса

Добавлено: 12 ноя 2018, 21:33
notauser
SIGTERM и в kill и в pkill если ничего не указано явно. А не SIGKILL. А процесс остановлен.

Теоретический вопрос по grep и завершению процесса

Добавлено: 12 ноя 2018, 22:37
mexx400
notauser писал(а):
12 ноя 2018, 21:33
SIGTERM ... А не SIGKILL. А процесс остановлен.
Да, всё ясно, спасибо.
If no signal is specified, the TERM signal is sent. This TERM signal will kill processes that do not catch it; for other processes it may be necessary to use the KILL signal (number 9), since this signal cannot be caught.
Еще бы про 'grep' понять.