Ich habe einen Dienst für eine Anwendung erstellt und möchte, dass diese Anwendung beim Booten gestartet wird. Im Service-Manifest stelle ich fest, dass es dafür eine Eigenschaft gibt (enabled = "true"), aber ich habe dies aus einem besonders ärgerlichen Aspekt vermieden:
Der Import ist Teil eines Skripts. Wenn der Dienst als "aktiviert" aktiviert ist, wird er beim Import neu gestartet. Das Problem ist, dass ich nicht sicher bin, wie ich warten soll, bis der Prozess aktiviert ist, bevor ich fortfahre. Also, was ich im Skript mache, ist mit importiertem Set als "false" zu importieren und dann "svcadm enable -s <service>
" auszuführen .
Also habe ich mich gefragt, ob jemand Antworten auf eine dieser Fragen hat:
- Wie kann ein vorhandener Dienst beim Booten gestartet werden (hoffentlich werden manuelle Ergänzungen zu rc3.d vermieden)?
- Wie lässt du den svccfg-Import warten, bis ein Dienst vollständig aktiviert ist, bevor du fortfährst?
- Gibt es eine elegante Möglichkeit, zu warten, bis ein Dienst gestartet wird, bevor Sie fortfahren (ohne manuelles Greifen nach aktiviert in einer Schleife zu vermeiden)?
Vielen Dank.
Antworten:
Ich werde versuchen, Ihre Fragen zu Solaris SMF zu beantworten ...
Um einen Dienst beim Booten zu starten, müssen Sie den Dienst einfach mit aktivieren
Um beispielsweise den Dienst "ipfilter" zu aktivieren, müssen Sie ihn erstellen
Dies wird für den aktuellen Meilenstein aktiviert, sodass keine Änderungen am
/etc/rcX.d
Verzeichnis vorgenommen werden müssenIch verstehe nicht, warum Sie den Importvorgang benötigen, um auf ein anderes frmi zu warten, aber ich importiere normalerweise das "Manifest" und stelle es danach
svcadm
zum Beispiel onlineUm andere frmi abzuwarten, können Sie die Option "Abhängigkeit" im Manifest verwenden, wie Sie hier sehen können
Ich habe viele Beispiele für die Installation und Verwendung von Solaris SMF in meinem Blog (auf Spanisch), aber hier sehen Sie beispielsweise ein Beispiel für die Installation von PostgreSQL 9.0.3 unter OpenIndiana oder die Installation von Apache Tomcat mit RBAC und SMF auf OpenIndiana
quelle
Vielleicht können Sie dies lösen, indem Sie Ihren Dienst von einem anderen Dienst abhängig machen, der noch nicht aktiviert ist.
quelle