Linux + Solaris como verificar o último processo de execução da lista de processos

1

Preciso de conselhos:

Como verificar qual é o último processo scan_sys.sh executado no meu linux ou solaris?

meu alvo é matar todo o processo scan_sys.sh, exceto o último scan_sys.sh (o último script /usr/scan_sys.sh)

ps -ef | grep scan_sys.sh

.

root   367     1   0   Nov 08 ?           0:21 /usr/scan_sys.sh
root 27517 27515   0 17:27:18 ?           0:01 /usr/scan_sys.sh
root 18939   367   0   Nov 15 ?           0:00 /usr/scan_sys.sh
root 18940 18939   0   Nov 15 ?           0:01 /usr/scan_sys.sh
root 27515   367   0 17:27:18 ?           0:00 /usr/scan_sys.sh
    
por yael 25.11.2012 / 17:11

1 resposta

2

Use ps option -o para selecionar os campos que deseja exibir para mostrar o pid do processo, a hora de início e o nome do comando, selecionando opcionalmente os processos nos quais você está interessado ( -C ), classificar no horário de início , mate todos menos o último.

Como ps é notoriamente conhecido por ser uma opção de linha de comando, você terá que verificar a página do manual para sua implementação. Para mim, o equivalente dos seguintes trabalhos no linux (para listar os PIDs apropriados):

ps -C scan_sys.sh -o pid --sort start | sed '$d'

Lembre-se de citar o script $ in sed com aspas simples (pelo menos em bash ), caso contrário, ele será expandido para a variável de ambiente d . Você pode enviar os PIDs para matar, e. via xargs ou por substituição de comando ( '' ou $() in bash ).

    
por 25.11.2012 / 19:01