A saída do pgrep já inclui os parâmetros fornecidos para o processo?

2

O snippet abaixo (de um script existente) é usado para verificar os processos xvfb e se eles estão ouvindo em uma porta específica:

  my_list='pgrep -u $CurrentUserID -fl Xvfb | grep :${XVFBPORT}'
  process_list='pgrep -fl Xvfb | grep :${XVFBPORT}'

O processo Xvfb é iniciado no seguinte formato:

  Xvfb :619  -fp /usr/share/fonts/X11/misc # i.e. in this case XVFBPORT is 619

Aparentemente, isso não funciona como previsto no Ubuntu desde a saída de pgrep -fl Xvfb daria algo como:

  4812 Xvfb

, sem o ": 619" no final. Claramente, com alguma tubulação adicional para ps , isso pode ser facilmente corrigido.

Existe alguma outra distribuição ou configuração em que pgrep daria a saída como esperado pelo script?

    
por prusswan 17.07.2014 / 13:54

1 resposta

3

Uma versão recente de pgrep de procps-ng tem a opção -a .

   -a, --list-full
          List  the  full  command line as well as the process ID.

Portanto, o pgrep -afl Xvfb | grep 619 deve ser impresso:

  4812 Xvfb :619  -fp /usr/share/fonts/X11/mis

No meu Debian Jessie (teste) esta opção está presente, e o pacote instalado é procps-ng 3.3.9 , mas não consigo encontrar uma versão quando esta opção foi introduzida, talvez a opção esteja presente em procps-ng e doesn ' t existe em procps .

    
por 17.07.2014 / 14:55

Tags