SMF sous OpenSolaris : un exemple d'application

Chaque *nix a ses astuces pour la gestion des services (Internet et autres). Voici un exemple sous OpenSolaris.

MySQL Server est configuré sous ma distribution pour être actif par défaut. Ainsi :

drzz@hanouka:~/Documents$ svcs -lp mysql

fmri         svc:/application/database/mysql:version_50

name         MySQL RDBMS

enabled      true

state        online

next_state   none

state_time   10 avril 2009 13:54:13 CEST

logfile      /var/svc/log/application-database-mysql:version_50.log

restarter    svc:/system/svc/restarter:default

contract_id  106 

dependency   require_all/none svc:/milestone/network:default (online)

dependency   require_all/none svc:/system/filesystem/local:default (online)

process      1418 /usr/mysql/5.0/bin/mysqld --user=mysql --datadir=/var/mysql/5.0/data --pid-file

me confirme que le serveur tourne bien avec un PID de 1418 (ce qui est confirmé par la sortie de prstat -a par exemple).

Si je veux supprimer le process (en gros arrêter le serveur), je peux utiliser la bonne vieille méthode peu recommandable, mais bon :

drzz@hanouka:~/Documents$ pfexec kill 1418

et voilà que si je relance la commande précédente, je m'aperçois que MySQL Server a été relancé :
drzz@hanouka:~/Documents$ svcs -lp mysql

fmri         svc:/application/database/mysql:version_50

name         MySQL RDBMS

enabled      true

state        online

next_state   none

state_time   10 avril 2009 13:59:19 CEST

logfile      /var/svc/log/application-database-mysql:version_50.log

restarter    svc:/system/svc/restarter:default

contract_id  108 

dependency   require_all/none svc:/milestone/network:default (online)

dependency   require_all/none svc:/system/filesystem/local:default (online)

process      1444 /usr/mysql/5.0/bin/mysqld --user=mysql --datadir=/var/mysql/5.0/data --pid-file

où l'on constate qu'un nouveau PID a été affecté suite au redémarrage (à vérifier plus bas) de MySQL Server.

Tout ça se confirme par un petit détour dans les logs :

drzz@hanouka:~/Documents$ tail /var/svc/log/application-database-mysql\:version_50.log

[ avr  10 13:54:11 Stopping because all processes in service exited. ]

[ avr  10 13:54:11 Executing stop method ("/lib/svc/method/mysql stop"). ]

[ avr  10 13:54:12 Method "stop" exited with status 0. ]

[ avr  10 13:54:12 Executing start method ("/lib/svc/method/mysql start"). ]

/usr/mysql/5.0/bin/mysqld --user=mysql --datadir=/var/mysql/5.0/data --pid-file=/var/mysql/5.0/data/hanouka.pid

[ avr  10 13:54:13 Method "start" exited with status 0. ]

090410 13:54:13 [Warning] option 'thread_stack': unsigned value 65536 adjusted to 131072

090410 13:54:14  InnoDB: Started; log sequence number 0 43675

090410 13:54:15 [Note] /usr/mysql/5.0/bin/mysqld: ready for connections.

Version: '5.0.67'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution

Voilà donc qui devrait aider plus d'un administrateur système soucieux de la pérénité de ses services. Je pense notamment aux connexions en pppoe avec des providers un peu capricieux (eh eh...).

tags : OpenSolaris, SMF, MySQL

mis en ligne : Fri Apr 10 13:56:43 CEST 2009