Como saber o comando executado por um processo?

0

Eu executei vários comandos em diferentes momentos como processo em segundo plano.

wget -r url1 & em wget -r url2 & em .............. em ..............

O resultado de ps -e mostra um processo chamado wget ---

     2552 ?        00:00:01 wget
     2576 ?        00:00:00 wget
     ......        .............
     ......        .............

Agora, quero matar o processo que está executando url2 . Como posso saber qual processo é executado, que url ?

    
por alhelal 11.05.2017 / 06:01

2 respostas

3

Em vez da opção -e para o comando ps , use a opção -f .

user1    14298 13518  0 00:11 pts/1    00:00:00 sleep 100
user1    14299 13518  0 00:11 pts/1    00:00:00 sleep 50

Desta forma, você verá os parâmetros passados para o comando também, no seu caso URLs diferentes

    
por 11.05.2017 / 06:14
1

Se isso foi feito em uma configuração de shell interativo, o segundo trabalho em segundo plano pode ser eliminado com kill %2 .

Se isso foi feito em um shell script, você pode gravar os PIDs e sinalizá-los assim:

#!/bin/bash
wget http://example.com/bigfile1 &
pid1=$!
wget http://example.com/biggerfile2 &
pid2=$!
# Time passes..
# Impatience intensifies...
kill $pid2

Se você quiser ver todas as linhas de comando (e ambientes) de sua sessão atual, você pode usar ps ex .

    
por 11.05.2017 / 06:13