Obtenha pid de comando de execução longa executado por meio de

2

Gostaria de gerar um servidor netcat persistente. Meu comando de escolha é o seguinte:

echo "bash -c \"while [ 1 ]; do nc -l -p 1111 >> check; done\"" | at now

Eu estou querendo saber como posso obter o PID do processo criado por at para que eu possa facilmente colocar o servidor em suspensão quando necessário.

    
por ziu 21.12.2011 / 15:07

1 resposta

3

Isso é um pouco complicado porque, citando, observe a alteração de "para"

Os seguintes itens funcionarão se você enviar sua tarefa at via at -f file

at -f nc.on now
cat nc.on
bash -c 'while [ 1 ]; do echo $$ > /var/run/atnc.pid; nc -l -p 1111  >> check; done'

o arquivo /var/run/atnc.pid terá o id do processo do bash que está executando nc

Você pode catar o arquivo para obter o id do processo bash e eliminá-lo, finalizando nc. Então rm /var/run/atnc.pid (opcional).

    
por 21.12.2011 / 17:08