Le utility pgrepe pkillsono state introdotte in Sun Solaris 7 e, come notato da g33klord , prendono uno schema come argomento che viene confrontato con i nomi dei processi in esecuzione. Mentre pgrepstampa semplicemente un elenco di processi corrispondenti, pkillinvierà il segnale specificato (o SIGTERMper impostazione predefinita) ai processi. Le opzioni e la semantica comuni tra pgrepe pkillsono utili quando vuoi stare attento e prima rivedere l'elenco con i processi di corrispondenza pgrep, quindi procedere con la loro eliminazione pkill. pgrepe pkillsono forniti dal le procps pacchetto, che fornisce anche altre /procutilità del file system, quali ps, top, free, uptimetra gli altri.
Il killallcomando è fornito dal pacchetto psmisc e differisce da pkillquello, per impostazione predefinita, corrisponde esattamente al nome dell'argomento (fino ai primi 15 caratteri) quando si determinano i segnali a cui verranno inviati i segnali di processo. L' opzione -e, --exactpuò essere specificata per richiedere anche corrispondenze esatte per nomi più lunghi di 15 caratteri. Questo rende killallun po 'più sicuro da usare rispetto a pkill. Se l'argomento specificato contiene caratteri slash ( /), l'argomento viene interpretato come un nome file e i processi che eseguono quel determinato file verranno selezionati come destinatari del segnale. killallsupporta anche espressione regolare corrispondenza dei nomi di processo, attraverso il -r, --regexpopzione.
Ci sono anche altre differenze. Il killallcomando, ad esempio, ha opzioni per abbinare i processi per età ( -o, --older-thane -y, --younger-than), mentre pkillpuò essere detto di uccidere i processi solo su un terminale specifico (tramite l' -topzione). Chiaramente quindi, i due comandi hanno nicchie specifiche.
Si noti che il killallcomando su sistemi che discendono da Unix System V (in particolare Sun's Solaris , IBM AIX e HP-UX HP ) uccide tutti i processi avviabili da un determinato utente, arrestando efficacemente il sistema se eseguito da root.
Le utility psmisc di Linux sono state portate su BSD (e in estensione Mac OS X ), quindi killallsegue la semantica "uccidi i processi per nome".