Führen Sie beim Booten des Ubuntu-Servers ein Bash-Skript aus, das eine Endlosschleife ausführt

Führen Sie beim Booten des Ubuntu-Servers ein Bash-Skript aus, das eine Endlosschleife ausführt

Ich bin gerade dabei, einen lokalen FTP-Server einzurichten und muss dieses Skript ausführen, wenn der Rechner hochfährt:

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

Wie geht man dabei am besten vor?

Ich habe versucht, es in die Datei rc.local einzufügen, aber dadurch kann der Server überhaupt nicht ordnungsgemäß gestartet werden. Außerdem muss dieses Skript als sudo ausgeführt werden, falls dies bei der Ausführung des Skripts einen Unterschied macht.

Ich bin für jede Hilfe oder Idee dankbar. Danke.

Antwort1

wie wäre es mit der Verwendung eines Cronjobs?

setzen

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

in eine Skriptdatei und rufen Sie es jede Minute auf:

sudo crontab -e

und rufen Sie es wie folgt auf:

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

weitere Informationen – Ubuntu Wiki

Antwort2

  • Entfernen Sie die Schleife aus Ihrem Skript
  • Platzieren Sie das Skript in einem geeigneten Verzeichnis (z. B. /usr/local/sbin/)
  • Platzieren Sie eine Cron-Jobbeschreibung in /etc/cron.d/, zB

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

Dadurch wird Ihr Skript jede Minute ausgeführt. Um ganz sicher zu gehen, müssen Sie dann eine Möglichkeit hinzufügen, die sicherstellt, dass nur eine Instanz ausgeführt wird (d. h., dass sie nicht ausgeführt wird, wenn eine andere Instanz länger als eine Minute zum Beenden benötigt). Dies geschieht normalerweise über Sperrdateien.

verwandte Informationen