Я создаю локальный 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
решение2
- Удалите цикл из вашего скрипта
- Поместите скрипт в какой-нибудь разумный каталог (например
/usr/local/sbin/
, ) - Поместите описание задания cron в /etc/cron.d/, например:
* * * * * myuser /usr/local/sbin/myscript
Это заставит ваш скрипт запускаться каждую минуту. Затем, чтобы быть полностью уверенным, вам нужно будет добавить какой-то способ, чтобы гарантировать, что запущен только один экземпляр (т. е. не запускать, если другой экземпляр займет больше минуты для завершения). Обычно это делается с помощью файлов блокировки.