Um den Datenbankserver unter Unix im Hintergrund und damit unabhängig von der laufenden Sitzung zu betreiben, können Sie ihn als Daemon ausführen.
Verwenden Sie nicht die Option "&", um den Datenbankserver im Hintergrund auszuführen. Wenn Sie den Unix-Befehl "&" (kaufmännisches "Und") verwenden, um den Datenbankserver im Hintergrund auszuführen, funktioniert dies nicht, weil der Server entweder sofort herunterfährt oder aufhört zu reagieren. Sie müssen den Datenbankserver als Daemon ausführen.
Außerdem gilt: Wenn Sie versuchen, einen Server im Hintergrund aus einem Programm mit der Sequenz fork()-exec()
zu starten, wird dies nicht funktionieren. Wenn Sie es tun müssen, fügen Sie die Option -ud der Liste der Datenbankserveroptionen
hinzu.
Sie können den Unix-Datenbankserver als Daemon auf eine der folgenden Arten betreiben:
Benutzen Sie die Option -ud, wenn Sie den Datenbankserver starten. Zum Beispiel:
dbsrv12 -ud demo |
Benutzen Sie das Tool "dbspawn", um den Datenbankserver zu starten. Zum Beispiel:
dbspawn dbsrv12 demo |
Ein Vorteil von "dbspawn" besteht darin, dass der dbspawn-Prozess nicht heruntergefahren wird, bis er bestätigt hat, dass der Daemon gestartet wurde und bereit ist, Anforderungen entgegen zu nehmen. Wenn aus irgendeinem Grund der Daemon nicht startet, ist der Exit-Code für "dbspawn" ein von Null verschiedener Wert.
Wenn Sie den Daemon direkt mit der Option -ud starten, erstellen die Befehle dbeng12 and dbsrv12 den Daemonprozess und geben ihr Ergebnis sofort zurück (sie werden beendet und der nächste Befehl kann ausgeführt werden), bevor der Daemon sich selbst initialisiert und versucht, eine der im Befehl angegebenen Datenbanken zu öffnen.
Wenn Sie herausfinden wollen, ob ein Daemon eine oder mehrere Anwendungen ausführt, die den Datenbankserver verwenden werden, können Sie "dbspawn" verwenden, um zu gewährleisten, dass der Daemon läuft, bevor Sie die Anwendung starten. Nachstehend finden Sie ein Beispiel dafür, wie Sie einen Test mit einem csh-Skript ausführen.
#!/bin/csh # start the server as a daemon and ensure that it is # running before you start any applications dbspawn dbsrv12 demo if ( $status != 0 ) then echo Failed to start demo server exit endif # ok, now you can start the applications ... |
Dieses Beispiel benutzt ein sh-Skript, um zu testen, ob der Daemon läuft, bevor die Anwendungen gestartet werden.
#!/bin/sh # start the server as a daemon and ensure that it is # running before you start any applications dbspawn dbsrv12 demo if [ $? != 0 ]; then echo Failed to start demo server exit fi # ok, now you can start the applications ... |
Starten Sie einen Daemon aus einem C-Programm, wie zum Beispiel:
... if( fork() == 0 ) { /* child process = start server daemon */ execl( "/opt/sqlanywhere12/bin/dbsrv12", "dbsrv12", "-ud", "demo" ); exit(1); } /* parent process */ ... |
Beachten Sie, dass die Option -ud benutzt wird.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |