Автор Тема: KillProcessTree ekvivalent v linux?  (Прочетена 3177 пъти)

obla4e

  • Участници
  • ***
  • Публикации: 11
    • Профил
KillProcessTree ekvivalent v linux?
« -: Jul 22, 2005, 13:11 »
Ima li takava komandi4ka? iskam da zatria process
Активен

  • Гост
KillProcessTree ekvivalent v linux?
« Отговор #1 -: Jul 22, 2005, 14:16 »
Цитат (obla4e @ Юли 22 2005,14:11)
Ima li takava komandi4ka? iskam da zatria process

ps?!
top?!
Активен

obla4e

  • Участници
  • ***
  • Публикации: 11
    • Профил
KillProcessTree ekvivalent v linux?
« Отговор #2 -: Jul 22, 2005, 18:50 »
ama az iskam da zatria i si4kite mu de4urliga ':p'
Активен

anger

  • Напреднали
  • *****
  • Публикации: 19
    • Профил
KillProcessTree ekvivalent v linux?
« Отговор #3 -: Jul 22, 2005, 20:19 »
ps axjf
Активен

  • Гост
KillProcessTree ekvivalent v linux?
« Отговор #4 -: Jul 22, 2005, 22:18 »
Най-лесно става от конзола. Разгледай:

man ps

man kill

Аз лично използвам:

ps -A
kill <pid> ;-)

Обикновенно се получава. А с дечурлигата ... май като затриеш първичния процес останалите се махат сами ;-) Но това е само моя теория. Първичен - с най-малкия номер.
Активен

vic_semionov

  • Напреднали
  • *****
  • Публикации: 144
    • Профил
    • WWW
KillProcessTree ekvivalent v linux?
« Отговор #5 -: Jul 23, 2005, 11:31 »
Готина идея, на мене не ми беше хрумвало и се позамислих... но най-доброто до което се докопах е да се затрият всички деца на даден процес (но не и техните деца, нито главния процес):

pkill -P <pid>

При това не знам дали го има в Linux, щото аз съм с FreeBSD. Но тоя вапрос ме интересува и мене и ся ша са поразровя в google.
Активен

  • Гост
KillProcessTree ekvivalent v linux?
« Отговор #6 -: Jul 23, 2005, 12:02 »
Цитат (vic_semionov @ Юли 23 2005,12:31)
... но най-доброто до което се докопах е да се затрият всички деца на даден процес (но не и техните деца, нито главния процес)...

Така няма ли риск пак да се повтори грешката довела до зацикляне на процеса?
Активен

vic_semionov

  • Напреднали
  • *****
  • Публикации: 144
    • Профил
    • WWW
KillProcessTree ekvivalent v linux?
« Отговор #7 -: Jul 23, 2005, 12:32 »
Цитат (Guest @ Юли 23 2005,13:02)
Цитат (vic_semionov @ Юли 23 2005,12:31)
... но най-доброто до което се докопах е да се затрият всички деца на даден процес (но не и техните деца, нито главния процес)...

Така няма ли риск пак да се повтори грешката довела до зацикляне на процеса?

За какво зацикляне става въпрос? Просто се търси начин да се убият даден процес и всичките му деца и техните деца и тн. А дали е зациклил и по каква причина е друг въпрос. Ако убиването му ще доведе до проблеми, не го прави, но понякога се налага '<img'>

Аз се усъмних в твоята теория че убиването на родителя убива и децата и го пробвах. Оказа се вярно, поне в някои случаи, но не мисля че винаги е така. Това е още едно нещо което трябва да проверя.
Активен

  • Гост
KillProcessTree ekvivalent v linux?
« Отговор #8 -: Jul 23, 2005, 13:38 »
За друго питам. Като оставиш главния процес, но спреш само подпроцесите (убиване на деца звучи малко ... '<img'> ) дали тогава няма риск. Прост пример:

1. Пускам xine (да гледам някой филм) и по неведоми причини той вземе, че забие.
2. Опитвам се да kill-вам процеса, но поради това, че не съм видял някой по-нагоре (първичния), се опитвам да махна някой подпроцес и естествено когато се опитам да стартирам пак xine той не тръгва.
3. Спирам главния процес и след това нямам проблеми да пусна програмката.

Може би грешката идва от това, че използвам

ps -A

и там не ми указва кое е подпроцес и кое не (или аз не съм видял къде го прави).
Активен

vic_semionov

  • Напреднали
  • *****
  • Публикации: 144
    • Профил
    • WWW
KillProcessTree ekvivalent v linux?
« Отговор #9 -: Jul 23, 2005, 15:10 »
Ако под подпроцес имаш предвид нишка (thread на англииски), не може отвън да се спре само един подпроцес, или цялата съвкупност от нишки (целия процес), или нищо.

Може би объркването идва от там, че в Линукс ако един процес се състои от две нишки, ps ти ги показва и двете, при това с различни PID и може да помислиш че процесите са два. Абе сбъркана работа '<img'>

Абе накратко, идеята е следната - ако един процес зацикли, трябва да го терминираш него, а не децата му, освен ако самите деца не са зациклили.
Активен

sdr

  • Напреднали
  • *****
  • Публикации: 655
    • Профил
KillProcessTree ekvivalent v linux?
« Отговор #10 -: Jul 23, 2005, 16:09 »
Нямаше ли някъде няква заповед - "не убивай?" от тва нямаше ли следствие "ако не можеш да го спреш културно - по-добре не го ползвай"??

може и аз да съм в грешка..
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
KillProcessTree ekvivalent v linux?
« Отговор #11 -: Jul 23, 2005, 16:11 »
Няма гаранция, че прекъсването на родителски процес спира 'подпроцесите'. Например при команда:
Примерен код
bash -c 'sleep 101 & sleep 101' &

, ако се спре bash си остават два процеса sleep.

Обработването на изхода от команди като ps, pstee е несигурно, защото дават снимка на текущите връзки.

Ако се иска няколко процеса да се прекъснат заедно, може би най-добре е да се поставят е една и съща "група от процеси". Тогава с програмата (!) /bin/kill -s TERM -pgid се изпраща сигнал (TERM в случая) на всичките процеси в група pgid.
Виж kill(1), kill(2), wait(2) ... (?) .

Бел.: Има разлика между /bin/kill и kill. Някой  командни интерпретатори имат вградена команда kill, чиито аргументи най-вероятно се различават от тези на програмата kill.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
KillProcessTree ekvivalent v linux?
« Отговор #12 -: Jul 24, 2005, 11:59 »
man killall

Примерен код
-g, --process-group
              Kill the process group to which the process belongs. The kill signal is only sent once  per  group,
              even if multiple processes belonging to the same process group were found.



Не знам дали е това, което си мисля, че е '<img'> ама разгледай го '<img'>
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Italianeca

  • Напреднали
  • *****
  • Публикации: 386
    • Профил
KillProcessTree ekvivalent v linux?
« Отговор #13 -: Jul 24, 2005, 12:10 »
Има програма която се нарича QPS Много полезна но я няма в повечето дистрибуции (В дебиан естествено я има). Тя ти показва процесите като дърво. И естестено можеш да селектираш каквото искаш да убиеш. За Гноме gnome-system-montor а за КДЕ нещо като Crash guard но не съм сигурен.

Поздрави
Активен

  • Гост
KillProcessTree ekvivalent v linux?
« Отговор #14 -: Jul 24, 2005, 15:21 »
Цитат (Italianeca @ Юли 24 2005,13:10)
Има програма която се нарича QPS Много полезна но я няма в повечето дистрибуции (В дебиан естествено я има). Тя ти показва процесите като дърво. И естестено можеш да селектираш каквото искаш да убиеш. За Гноме gnome-system-montor а за КДЕ нещо като Crash guard но не съм сигурен.

Поздрави

pstree - display a tree of processes.

[nick@fuji ~]$ pstree

init&#9472;&#9516;&#9472;acpid
     &#9500;&#9472;artsd
     &#9500;&#9472;atd
     &#9500;&#9472;auditd
     &#9500;&#9472;2*[automount]
     &#9500;&#9472;bonobo-activati
     &#9500;&#9472;cardmgr
     &#9500;&#9472;crond
     &#9500;&#9472;cups-config-dae
     &#9500;&#9472;cupsd

QPS прилича ли на нея?
защото мисля, че pstree е стандартна програма, която влиза във всяка дистрибуция (но само го мисля -- не съм го проверявал).
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Бисквитките на linux-bg.org
Предложения за подобрения на сайта
ogi 0 5935 Последна публикация Apr 29, 2002, 21:40
от ogi
Лаком Linux
Хардуерни и софтуерни проблеми
kennedy 2 6556 Последна публикация Aug 13, 2002, 01:15
от zarrro
Mandrake Linux 10 and Linux
Настройка на програми
aaaSASlover 3 10254 Последна публикация Dec 08, 2012, 20:46
от UBIGI
Remote връзка Linux<--> Linux
Настройка на програми
stoyanovs 5 8506 Последна публикация Jan 24, 2006, 16:49
от gostenin
Experienced linux enginnced linux engineers
Търсене
bulwork 0 8605 Последна публикация May 10, 2008, 14:24
от bulwork