Существуют многочисленные способы начаться, но вот то, что я рекомендую сделать:
Сделайте каталог для хранения сценариев:
mkdir ~/bin
Отредактируйте свой ~/.bashrc (я предполагаю, что Вы знаете, как обработать редактора), и добавьте внизу:
if [ -d ~/bin ] ; then
export PATH=~/bin:"${PATH}"
fi
Выход из системы и входит в систему снова (или запускает новый терминал), и проверка, если ~/bin
находится в Вашем пути:
echo $PATH
Создайте свою первую программу ~/bin/echo_on_boot
и вставленный
#! /bin/bash
echo "Started" > /var/tmp/written_on_startup
измените полномочия на программе, таким образом, она выполнится:
chmod 750 ~/bin/echo_on_boot
попробуйте программу:
echo_on_boot
проверьте если /var/tmp/written_on_startup
был создан и удалите его:
cat /var/tmp/written_on_startup
rm -f /var/tmp/written_on_startup
отредактируйте свой crontab с crontab -e
, добавьте строку (около нижней части обычно), предположив это ~
/home/vamvid
(Вы не можете использовать ~
в crontab файле):
@reboot /home/vamvid/bin/echo_on_boot
@reboot
не будет работать, если Вы корневой каталог будете, например, на зашифрованном диске как ~/bin
каталог затем не доступен после перезагрузки (только, когда Вы входите в систему).
Что бы вы ни пытались сделать, наиболее вероятно, лучший подход, но если вы решили, что что-то вроде
while [[ 1 == 1 ]]; do sleep 10000& done
начнет много спит
, но это может занять некоторое время, чтобы начать все из них. Когда у вас будет достаточно процессов, просто нажмите Ctrl-C
, чтобы выйти из во время
цикла.
Да, я боюсь, что содержимое смонтированных данных подключено к тому месту, где вы ранее были смонтированы. По крайней мере двойной монтаж активного диска в двух местах может привести к определенному повреждению данных.
Итак, ответ заключается в том, что ваш rm успешно удалил файлы в/dev/sdb1. Единственным средством восстановления на данном этапе является восстановление содержимого из резервных копий.
-121--186864-Можно сделать что-то подобное, чтобы начать процесс с нужным PID.
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
Можно дождаться получения требуемого PID и, вероятно, заменить инструкцию echo
на все, что действительно необходимо проверить.
Ссылки
будут использоваться один и тот же pid после уничтожения?
EDIT
Почему растет номер PID? Это связано с тем, что вы снова и снова запускаете другой бешеный экземпляр?
Я верю, что то, что вы сказали, это то, что происходит. Это можно было бы проверить просто, как показано ниже.
while true; do bash -c 'echo $$' ; done
Мы можем видеть, что PID продолжают увеличиваться, и с главной страницы bash
я вижу, что,
-c последовательностью Если параметр -c присутствует, то команды считываются из последовательность. Если после последовательности есть аргументы, они присваиваются к позиционным параметрам, начиная с $0.
Таким образом, согласно моему пониманию, каждое эхо
утверждение в вышеприведенном тестировании выполняется как отдельный процесс, поэтому мы можем видеть, что PID увеличиваются.
Что бы вы ни пытались сделать, есть, скорее всего, лучший подход, но если вы определили, что-то вроде
while [[ 1 == 1 ]]; do sleep 10000& done
начнется много спит
, но это может занять некоторое время, чтобы начать все из них. Когда у вас будет достаточно процессов, просто нажмите Ctrl-C
, чтобы выйти из цикла во время цикла
.