|
|
Web Server nach einem Neustart automatisch starten
|
|
|
--------------------------------------------------
|
|
|
Es kann vorkommen, wenn auch sehr selten und dann immer mit Ankündigung per E-Mail, dass [Thorin] rebooted werden muss, z.B. nach einem Betriebssystem Upgrade. Die lokalen Web Server müssten nach dem Neustart wieder manuell gestartet werden. Wem das zu umständlich ist, der kann sich einen Eintrag in die `crontab` anlegen, der das übernimmt.
|
|
|
|
|
|
Dazu öffnet man seine persönliche `cron`-Tabelle:
|
|
|
|
|
|
```bash
|
|
|
crontab -e
|
|
|
```
|
|
|
|
|
|
Danach trägt man die gewünschten Befehle, welche die Server starten mit dem Prefix `@reboot` in die Datei ein. Hier ist ein Beispiel für den lokalen nginx-Server und PHP-FPM:
|
|
|
|
|
|
# Start the web server and related FastCGI process manager automatically
|
|
|
# after the system has booted.
|
|
|
@reboot ~/bin/php5-fpm start; ~/bin/nginx
|
|
|
|
|
|
|
|
|
Locales ~/run Verzeichnis
|
|
|
-------------------------
|
|
|
Im lokalen ~/run Verzeichnis werden wie auch im System /run Verzeichnis Prozessinformationen gespeichert, wie z.B. die PID-Dateien für die Web-Serverinstanz oder die Sockel-Dateien für den FastCGI Prozess-Manager.
|
|
|
|
|
|
Diese Informationen sind nicht persistent, d.h. nach einem Neustart des Systems müssen sie wieder neu angelegt werdeb, da sich die Prozess-IDs geändert haben. Deshalb kann für dieses Verzeichnis ein sogenanntes `tmpfs` (temporäres Dateisystem) benutzt werden. Alle Dateien in diesem Dateisystem werden nur im RAM gespeichert und sind daher nach einem Reboot nicht mehr vorhanden.
|
|
|
|
|
|
Um das Dateisystem für den lokalen ~/run Ordner zu verwenden macht man folgendes:
|
|
|
|
|
|
Als erstes stopt man alle Prozesse, welche auf das `~/run` Verzeichnis und dessen Dateien zugreifen:
|
|
|
|
|
|
$ nginx -s stop
|
|
|
$ php5-fpm stop
|
|
|
|
|
|
Danach löscht man das Verzeichnis:
|
|
|
|
|
|
$ rmdir ~/run
|
|
|
|
|
|
Sollte das Verzeichnis nicht leer sein, vergiewissert man sich, welche Dateien und Verzeichnisse noch vorhanden sind und wägt ab, ob diese gelöscht werden können. Wenn ja, kann man das Verzeichnis mit folgendem Befehl rekursiv löschen:
|
|
|
|
|
|
$ rm -R ~/run
|
|
|
|
|
|
Jetzt legt man einen eigenen eigenen Ordner im globalen tmpfs an:
|
|
|
|
|
|
$ mkdir -p /run/shm/$USER/run
|
|
|
|
|
|
Danach erstellt man einen Symlink im eigenen Home-Verzeichnis auf das gerade angelegt Verzeichnis
|
|
|
|
|
|
$ ln -s /run/shm/$USER/run ~/run
|
|
|
|
|
|
Jetzt kann man alle Server und Pozess Manager wieder starten
|
|
|
|
|
|
$ nginx
|
|
|
$ php5-fpm start
|
|
|
|
|
|
### Verzeichnis nach einem Neustart autoatmisch anlegen
|
|
|
Nach einem Neustart existiert das angelegt Verzeichnis im globalen tmpfs nicht mehr. Daher müsste es nach jedem Neustart wieder angelegt werden, *bevor* man den Web Server startet. Auch das kann man wieder durch einen `cron`-Job Automatisieren:
|
|
|
|
|
|
$ cron -e
|
|
|
|
|
|
und trägt folgenden Job ein. Sollte man bereits den Web Server und Prozess Manager autoatmisch starten, muss dieser Job *vor* dem Starten des servers angelegt werden:
|
|
|
|
|
|
# Create the user ~/run directory inside the system-wide tmpfs.
|
|
|
# ~/run is a symlink to this directory. We do this because the
|
|
|
# information inside this directory are volatile.
|
|
|
#
|
|
|
# Note:
|
|
|
# We do not need to execute umask 0027 before the mkdir command, because
|
|
|
# 0027 is the default setting on Thorin
|
|
|
@reboot mkdir --parents /run/shm/lucas/run |
|
|
\ No newline at end of file |