Às vezes, quando tento iniciar o Firefox, ele diz "um processo do Firefox já está em execução". Então eu tenho que fazer isso:
jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451
O que eu gostaria é de um comando que faria tudo isso por mim. Seria necessário uma string de entrada e grep
para ela (ou qualquer outra coisa) na lista de processos, e eliminaria todos os processos na saída:
jeremy@jeremy-desktop:~$ killbyname firefox
Tentei fazê-lo no PHP, mas exec('ps aux')
parece mostrar apenas processos executados exec()
no próprio script PHP (portanto, o único processo que ele mostra é ele próprio).
pkill -f "Process name"
comando ...Respostas:
Mais informações: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
fonte
-f
.pkill -U <username>
é bastante útil. Eu tenho um servidor Web Solaris , o daemon real do servidor Web, é configurado como um Serviço com seu próprio usuário. Portanto, especificar pelo usuário é uma maneira simples / fácil de acionar uma reinicialização.-f
bandeira para uma solução omnibus.Também é possível usar:
Para mim, funcionou perfeitamente. Era o que eu estava procurando. O pkill não funciona com o nome sem a bandeira.
Quando
-f
definido, a linha de comando completa é usada para correspondência de padrões.fonte
-f
opção é realmente necessária. por exemplopkill -f "EvilWindowsServer.exe"
-f
flag também para matar um processo em segundo plano executando um script Python.pkill -f -9 PROCESSNAME
Você pode matar processos pelo nome com
killall <name>
Mas se você não
ps aux
vir o processo , provavelmente não terá o direito de matá-lo ...fonte
killall -s KILL firefox
Uma alternativa um pouco mais longa:
fonte
A maneira mais fácil de fazer isso é verificar primeiro se você está obtendo os IDs de processo corretos com:
Se o resultado for o esperado. Ir com:
fonte
Estranho, mas eu não vi a solução assim:
também pode matar vários processos (vários pids) como:
Eu prefiro,
pidof
pois tem saída de linha única:fonte
kill: invalid number 'pidof myprogram'
. O que há de ruim aqui?Mate todos os processos com o
snippet
caminho de inicialização. Você pode matar todos os aplicativos iniciados em algum diretório colocando / directory / como um trecho. Isso é bastante útil quando você inicia vários componentes para o mesmo aplicativo no mesmo diretório de aplicativos.* Prefiro o pgrep, se disponível
fonte
grep
.ps ax | awk '/[s]nippet/ { print $1 }' | xargs kill
[s]
funciona em termos de não corresponder ao processo awk?[x]y
corresponde à string,xy
mas não vice-versa. Esta é uma FAQ comum. O link é para uma página de mais de 20 anos atrás, que explica isso com mais detalhes; e essa era uma pergunta recorrente já naquela época.No Mac, não consegui encontrar o pgrep e o pkill, nem o killall estava funcionando, então escrevi um script simples de um liner: -
Se houver uma maneira mais fácil de fazer isso, compartilhe.
fonte
Usando o
#killall
comando:fonte
Para matar com grep:
fonte
mais correto seria:
fonte
export
usa uma variável que você vai usar apenas uma vez no mesmo processo?Eu normalmente uso o
killall
comandoVerifique este link para obter detalhes deste comando.
fonte
Eu estava me perguntando a mesma pergunta, mas o problema com as respostas atuais é que elas não verificam com segurança os processos a serem mortos, então ... isso pode levar a erros terríveis:) ... especialmente se vários processos corresponderem ao padrão .
Como isenção de responsabilidade, não sou profissional e certamente há espaço para melhorias.
Então eu escrevi um pequeno script sh:
fonte
Se você executa o GNOME, pode usar o monitor do sistema (Sistema-> Administração-> Monitor do Sistema) para interromper os processos como faria no Windows. O KDE terá algo semelhante.
fonte
O
kill
comando padrão aceita nomes de comando como uma alternativa ao PID. Veja kill (1) . Um problema que ocorre com frequência é o debash
fornecer seus próprios dados,kill
que aceita números de trabalho, comokill %1
, mas não nomes de comando. Isso dificulta o comando padrão. Se a funcionalidade anterior for mais útil para você do que a última, você poderá desativar abash
versão chamandoenable -n kill
Para mais informações, consulte
kill
eenable
entradas no bash (1) .fonte
enable -n kill
?enable kill
kill -9 $ (ps aux | grep -e nome do meu processo | awk '{print $ 2}')
fonte
fonte
awk oneliner, que analisa o cabeçalho da
ps
saída, para que você não precise se preocupar com os números das colunas (mas com os nomes das colunas). Regex de suporte. Por exemplo, para matar todos os processos, cujo nome do executável (sem caminho) contém a palavra "firefox", tentefonte