Як запустити сценарій безперебійного перебігу силового велосипедного руху


0

Я тупою над тим, як виконати це завдання. Мені потрібно запустити цей скрипт, який заповнює нанд-спалах на вбудованому (linux-Busybox v1) пристрої з випадковими даними, а потім постійно повторює цей процес, поки користувач не зупинить його або не вийде з ладу флешка. Проблема, яка у мене виникає, полягає в тому, що моє тестування включає в себе кілька разів перемикання живлення на пристрій. Але сценарій перестає працювати, що закликає мене запустити його знову вручну. Чи може хтось порекомендувати резолюцію? Дякую!

Сценарій:

#!/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

Оновлення:

Я не зміг зазначити, оскільки у мене не було цієї інформації на той час, вбудований ОС промальовано: є багато файлів, які доступні лише для читання; / etc / rc - один із таких файлів. Чи є якась обробка, яка дозволить мені запустити сценарій при запуску?

Відповіді:


1

Ви можете додати таке /etc/rc.local:

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

Тоді ви можете ввести "tmux attach namefortmuxsession", щоб переглянути термінальний вихід зі свого сценарію.

Заміна /path/to/your/script',$ (USERNAME-TO-RUN-AS) and$ {NAME-FOR-SESSION} `відповідно до ваших потреб.

Звичайно, вам знадобиться tmuxвстановити. Ви, напевно, можете це зробити screenзамість цього, проте я вважаю за краще tmux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.