Como script com o systemd-cgtop?

2

A manpage do systemd-cgtop diz que, se não houver nenhum anexo tty fará uma iteração e depois imprimirá, dizendo que isso seria útil em scripts.

No entanto, quando tento fazer isso de um script, ele não funciona como anunciado:

#!/bin/bash
line=$(systemd-cgtop|grep ezdose)
echo $line

Executando o script assim:

$ bash test.sh
(hangs with no output)

Como você trabalha isso?

    
por hamstar 20.11.2014 / 00:45

2 respostas

1

systemd-cgtop -n1 fará 1 iteração

Para saber se você está anexado a um tty coloque uma linha no seu script: tty

#!/bin/sh
#  How to check what tty you are on.
echo -ne "Connected TTY: "'tty'

line=$(systemd-cgtop -n1|grep ezdose)
echo $line
    
por 20.11.2014 / 00:52
1

Trecho do NOTÍCIAS :

CHANGES WITH 201:

systemd-cgtop has also been updated to be 'pipeable' for processing with further shell tools.

Então, você pode executar systemd-cgtop | grep ... desde v201 .

CHANGES WITH 188:

cgtop gained a new -n switch (similar to top), to configure the maximum number of iterations to run for. It also gained -b, to run in batch mode (accepting no input).

Você pode executar systemd-cgtop -n1 -b | grep ... . Mas systemd-cgtop imprime Path Tasks %CPU Memory Input/s Output/s como a primeira linha (até v201 ).

Além disso:

CHANGES WITH 221:

The systemd-cgtop tool learnt a new --raw switch to generate "raw" (machine parsable) output.

Com a opção --raw , você obtém tamanhos em bytes: ou seja, 92213248 em vez de 87.9M

    
por 04.09.2015 / 00:34