Я растоптал о том, как выполнить эту задачу. Мне нужно запустить этот скрипт, который заполняет флэш-память nand на встроенном (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 ответ1

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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .