Como executar um script ininterrupto ao longo do ciclo de potência

0

Estou impressionado em como realizar essa tarefa. Eu preciso executar este script que preenche o flash nand em um dispositivo incorporado (linux-Busybox v1) com dados aleatórios, em seguida, repete continuamente este processo até que o usuário pára ou a unidade flash falhar. O problema que estou tendo é que o meu teste envolve o ciclo de energia do dispositivo várias vezes. Mas o script para de funcionar, o que me pede para reiniciá-lo manualmente. Alguém pode recomendar uma resolução? Obrigado!

Script:

#!/bin/sh

mkdir -p /mytest/storage/testnand

idx=0
while true
do
#./script.sh >/mytest/storage/testnand/test.raw
dd if=/dev/urandom of=/mytest/storage/testnand/test.raw bs=100000 count=50 2> /dev/null
if [ ! $? = 0 ]
then
    echo "ERROR: ${idx}"
    echo "ERROR: ${idx}" >> /mytest/storage/testnand/error.log
    continue
fi
cp /mytest/storage/testnand/test.raw /mytest/storage/testnand/test_copied.raw
if [ ! $? = 0 ]
then
    echo "ERROR 1: ${idx}"
    echo "ERROR 1: ${idx}" >> /mytest/storage/testnand/error.log
    continue
fi
cmp /mytest/storage/testnand/test.raw /mytest/storage/testnand/test_copied.raw 2> /dev/null
if [ ! $? = 0 ]
then
    echo "ERROR 2: ${idx}"
    echo "ERROR 2: ${idx}" >> /mytest/storage/testnand/error.log
    continue
fi
echo "OK ${idx}"
echo "OK ${idx}" >> /mytest/storage/testnand/ok.log

idx='expr $idx + 1'
done

Atualização:

Eu não mencionei, como eu não tinha essa informação na época, o sistema operacional embutido é corrigido: há muitos arquivos que são somente leitura; / etc / rc é um desses arquivos. Existe algum tipo de solução que me permita executar o meu script na inicialização?

    
por suffa 10.05.2013 / 15:18

1 resposta

1

Você pode adicionar o seguinte a /etc/rc.local :

sudo -u ${USERNAME-TO-RUN-AS} tmux new-session -d -s ${NAME-FOR-SESSION} -d 'sh /path/to/your/script'

Em seguida, você pode digitar "tmux attach namefortmuxsession" para visualizar a saída do terminal do seu script.

Substituindo /path/to/your/script', $ (USERNAME-TO-RUN-AS) and $ {NOME-PARA-SESSÃO} 'para atender às suas necessidades.

Claro, você precisará do tmux instalado. Você provavelmente poderia fazer isso com screen , mas eu prefiro tmux .

    
por 10.05.2013 / 15:32