Como interromper meu script?

1

Eu uso o seguinte script (que eu inicio do comando at ) como um alarme:

#! /bin/sh

set -m

while true; do
  paplay /usr/share/sounds/phone.wav
done &

Eu quero ligar uma chave para parar este alarme. Por favor, ajude a escrever um script que possa localizar e matar este processo.

    
por porton 27.01.2014 / 05:31

2 respostas

1

Adicione o seguinte ao final do seu script:

PID=$!
echo $PID > /tmp/wakeupalarm.pid

Então o seu script de assassinato será

#!/bin/bash
PidFile=/tmp/wakeupalarm.pid

[ -f $PidFile ] && kill $(< $PidFile) && echo > $PidFile

Você também deve executar o script de eliminação no início do script de alarme, para garantir uma única instância do processo.

    
por 31.01.2014 / 18:20
0

Isso deve funcionar

#!/bin/bash
pid=$(ps aux | grep scriptname.sh | awk -F ' ' ' { print $2 } '
kill $pid

Tenho certeza de que existem maneiras melhores.

    
por 27.01.2014 / 07:43