Запустите bash-скрипт при загрузке сервера Ubuntu, который выполняет постоянный цикл

Запустите bash-скрипт при загрузке сервера Ubuntu, который выполняет постоянный цикл

Я создаю локальный FTP-сервер и мне нужно, чтобы этот скрипт запускался при загрузке компьютера:

#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done

Как лучше всего это сделать?

Я попытался поместить его в файл rc.local, но это вообще не позволяет серверу нормально загружаться. Кроме того, этот скрипт нужно запускать как sudo, если это что-то изменит в ходе выполнения скрипта.

Любая помощь или идеи будут оценены по достоинству. Спасибо.

решение1

что насчет использования cronjob?

помещать

#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder

в файл скрипта и вызывать его каждую минуту:

sudo crontab -e

и вызовите следующим образом:

* * * * * /path/to/script.sh

дополнительная информация - ubuntu wiki

решение2

  • Удалите цикл из вашего скрипта
  • Поместите скрипт в какой-нибудь разумный каталог (например /usr/local/sbin/, )
  • Поместите описание задания cron в /etc/cron.d/, например:

* * * * * myuser /usr/local/sbin/myscript

Это заставит ваш скрипт запускаться каждую минуту. Затем, чтобы быть полностью уверенным, вам нужно будет добавить какой-то способ, чтобы гарантировать, что запущен только один экземпляр (т. е. не запускать, если другой экземпляр займет больше минуты для завершения). Обычно это делается с помощью файлов блокировки.

Связанный контент