GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi příkazy kill a killall?

Od linuxových fór po linuxové memy narazíte na dva příkazy pro vynucení ukončení programů v Linuxu; zabít a zabít.

Zatímco mnoho uživatelů Linuxu zná příkaz kill, jen málo lidí zná a používá příkaz killall.

A stejně to může být pro lidi matoucí. Oba příkazy mají podobný znějící název a podobný účel (ukončit procesy).

Jaký je tedy rozdíl mezi kill a killall? Jaký příkaz byste měli použít a v jakém případě byste je měli použít?

Rozdíl mezi příkazy kill a killall

Příkaz kill funguje na ID procesu (PID) a zabije procesy, pro které zadáte PID. Na druhou stranu příkaz killall pracuje s názvem procesu a zabije všechny procesy s danými názvy procesů. Například pokud existují tři instance mysqld běží, zabije je killall všechny tři pomocí killall mysqld vzhledem k tomu, že pro příkaz k ukončení musíte zadat PID všech tří instancí jako kill PID1 PID2 PID3 .

Jednodušeji řečeno, příkaz kill pracuje s PID (často individuální PID) a příkaz killall pracuje s názvem procesu a zabije všechny procesy s názvem procesu.

Dovolte mi to ukázat v akci.

Spustím tři instance programu nazvaného evince a pošlu jej na pozadí (běží dál, ale řízení vrátí terminálu).

evince &
evince &
evince &

Nyní mám tři programy spuštěné s názvem procesu evince, ale s různými ID procesu.

Chcete-li vynutit zastavení procesu pomocí příkazu kill, musíte zadat PID požadovaných procesů.

kill PID1

Zadejte však název procesu do příkazu killall a ten zabije všechny spuštěné instance s těmito názvy procesů.

killall evince

Podívejte se na níže uvedený snímek obrazovky, abyste viděli všechny příkazy v akci:

Jak si můžete všimnout zde, potřebujete znát ID procesu pro příkaz kill a musíte najít název procesu pro příkaz killall.

Který byste měli použít? Zabít nebo zabít?

Protože příkaz kill pracuje s jednotlivými procesy, je bezpečnější. Ostatně před spuštěním příkazu killall byste se měli ujistit, že neběží žádné podobně pojmenované procesy, které nechcete zabít.

Doufám, že už máte jasnou představu o příkazech kill a killallll. Neváhejte a položte otázku nebo návrh.


Linux
  1. Jaký je rozdíl mezi &(ampersand) a &&(dvojitý ampersand) při provádění simultánních příkazů v Linuxu

  2. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  3. Jaký je rozdíl mezi fsck a e2fsck?

  1. Jaký je rozdíl mezi &> a >&v bash?

  2. Jaký je rozdíl mezi adduser a useradd?

  3. Jaký je rozdíl mezi ls a l?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  3. Jaký je rozdíl mezi `su -` a `su --login`?