Автор Тема: Может ли быть заменена команда Kill, исходя из заповеди "Не убий!"? :)  (Прочитано 1275 раз)

Оффлайн Maxik

  • Давно тут
  • **
  • Сообщений: 240
    • Вегетарианское сообщество сурового климата.
    • Email
Здравствуйте!
Вроде ведь можно использовать, например, service stop.
Может ли быть использована другая команда в будущем?
Вопрос навеян желанием отсутствия насилия в системе.
Можно ли как-то завершать процессы без kill?
С уважением, Максим.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 551
    • Домашняя страница
    • Email
Используйте графические программы или сделайте алиас.
Андрей Черепанов (cas@)

Онлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 3 989
  • antohami@
Процесс не человек и не живое существо. Хватит глупостями заниматься.

Оффлайн Kalt

  • Давно тут
  • **
  • Сообщений: 946
...Да какая же это глупость? Это поиск всяческих препятствий, с пониманием невозможности их преодолеть... ;-)
Intel Xeon X3440 2,53GHz, MSI H55- G43, DDR3- 4x2GB, GF GT710

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 584
Можно ли как-то завершать процессы без kill?

Можно.
Если в линукс-системе читать документацию, так же, как виндоус или в других операционных системах:
$ /bin/kill --table | head -n 15
 1 HUP      Обрыв терминальной линии
 2 INT      Прерывание
 3 QUIT     Выход
 4 ILL      Недопустимая инструкция
 5 TRAP     Ловушка трассировки/останова
 6 ABRT     Аварийный останов
 7 BUS      Ошибка шины
 8 FPE      Исключение в операции с плавающей точкой
 9 KILL     Убито
10 USR1     Определяемый пользователем сигнал 1
11 SEGV     Ошибка сегментирования
12 USR2     Определяемый пользователем сигнал 2
13 PIPE     Обрыв канала
14 ALRM     Сигнал таймера
15 TERM     Завершено

Оффлайн Александр Ерещенко

  • Давно тут
  • **
  • Сообщений: 581
Можно ли как-то завершать процессы без kill?
Можно.
Если в линукс-системе читать документацию, так же, как виндоус или в других операционных системах:
"Как страшно жить!" (с)
В винде тоже насилие!
C:\> taskkill.exe /?

TASKKILL [/S <система> [/U <пользователь> [/P [<пароль>]]]]
         { [/FI <фильтр>] [/PID <процесс> | /IM <образ>] } [/T] [/F]

Описание:
    Завершает процесс по его ID (PID) или имени образа.
;-D

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 584
Можно ли как-то завершать процессы без kill?
Можно.
Если в линукс-системе читать документацию, так же, как виндоус или в других операционных системах:
"Как страшно жить!" (с)
В винде тоже насилие!
 ;-D

:-) Угу.
И что характерно, в Unix-подобных системах, к убийству (процесса(ов)), kill не имеет отношения никак. Его задача не в этом. Его задача, переслать процессу(ам) сигнал, который задаётся опционально.
А без параметра, kill к убийству не имеет отношения от слова совсем:
$ ps -eo pid,args| grep htop
  89968 htop
$ strace -o strace-kill.txt kill 89968
$ tail -n5 strace-kill.txt
kill(89968, SIGTERM)                    = 0
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

При этом kill, это не /bin/kill:
$ enable | grep kill
enable kill
$ file /bin/kill
/bin/kill: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, stripped
$ enable --help | head -n 2
enable: enable [-a] [-dnps] [-f файл] [имя ...]
    Enable and disable shell builtins.
$ kill -t
bash: kill: t: недопустимое указание сигнала
$ /bin/kill -t | grep ^15
15 TERM     Завершено

И kill, это далеко не убиение:
$ ps aux | grep htop
user    102158  1.2  0.0   8288  4540 pts/6    S+   10:06   0:01 htop
$ /bin/kill -s SIGSTOP 102158
$ ps aux | grep htop
user    102158  1.2  0.0   8288  4540 pts/6    T    10:06   0:02 htop
$ /bin/kill -s SIGCONT 102158
$ ps aux | grep htop
user    102158  1.1  0.0   8288  4540 pts/6    S    10:06   0:02 htop
« Последнее редактирование: 27.05.2021 10:14:25 от Speccyfighter »