2016-07-22 6 views
3

Wenn ich eine Website mit einem http_deamon auf einem Server läuft, ist es möglich, ssh in den Server dann öffnen Sie die Prolog-Schnittstelle, führen einige Abfragen, vor allem machen und schließen Sie die Schnittstelle mit der Website noch läuft ?läuft auf einem http_deamon swi prolog

Antwort

3

Ja, es ist möglich, Definitionen mit einem laufenden HTTP-Server neu zu laden.

Schritte zum Reproduzieren:

  1. eine Sitzung screen oder tmux starten. Dadurch können Sie das Terminal abmelden, um sich später in derselben Sitzung anzumelden.
  2. Starten Sie den Server. Mit der HTTP Daemon-Bibliothek, verwenden Sie das --interactive Flag, um eine interaktive Toplevel zu erhalten.
  3. Trennen Sie die Sitzung.
  4. Abmelden.

zu einem späteren Zeitpunkt, Definitionen neu zu laden, während der Server noch läuft, einfach:

  1. Anmeldung wieder
  2. erneut anschließen Sitzung
  3. Lauf ?- make. wie gewohnt.

Caveat: Mit dem HTTP Unix-Daemon, make/0 zur Zeit einige Probleme, aber man kann immer einen HTTP-Server starten auch die http_unix_daemon Bibliothek ohne Verwendung, und in diesem Fall make/0 mehr gut funktioniert.

Eine Alternative besteht darin, einfach einen speziellen URL-Handler bereitzustellen, der make/0 innerhalb des Servers ausführt, wenn auf diese URL zugegriffen wird. Auch hier funktioniert es möglicherweise nicht reibungslos mit der Unix-Daemon-Bibliothek, aber normalerweise ohne es auszuführen.