Ceci est une ancienne révision du document !


Dernière mise-à-jour : 2020/01/30 03:36

SO212 - Gestion du Démarrage et de l'Arrêt

Plateforme SPARC

La séquence de boot d'une station SPARC est la suivante :

  1. La PROM charge le bootblock
  2. Le bootblock charge le fichier ufsboot
  3. ufsboot charge le noyau
  4. Le fichier /etc/system est lu
  5. Le noyau charge les modules
  6. Le noyau lance /sbin/init
  7. init lit le fichier /etc/inittab

La liste des commandes de la PROM sont :

Commande Description
help Affiche les commandes
boot Démarrage du système
boot -s Démarrage en mode mono-utilisateur
boot -a Démarrage interactif
boot -r Démarrage avec création des fichiers périphériques après l'ajout des pilotes
banner Affiche des informations sur le système
probe-scsi-all Liste des périphériques SCSI
probe-scsi Liste des périphériques SCSI
printenv Affiche le périphérique de démarrage
setenv Modifie le périphérique de démarrage

La commande eeprom permet de modifier les paramètres de la mémoire PROM et d'y associer un mot de passe.

Plateforme PC

BIOS

Au démarrage de la machine, le premier programme exécuté est le BIOS. Le BIOS a pour fonction de :

  • Tester les composants et les circuits,
  • Faire appel au BIOS de la carte graphique pour initialiser le système d'affichage,
  • Détecter les périphériques de stockage,
  • Lancer le gestionnaire d'amorçage du système d'exploitation.

Gestionnaire d'amorçage

Le gestionnaire d'amorçage est en règle générale placé dans le MBR du disque. Le format du MBR est le suivant :

  • 446 octets pour le gestionnaire d'amorçage,
  • 64 octest pour la table de partitions, soit 16 octets par partition décrite,
  • 2 octets ayant une valeur fixe en hexadécimale de AA55.

Le gestionnaire d'amorçage sous Solaris est GRUB (Grand Unified Boot Loader).

Grub

grub se configure grâce au fichier /boot/grub/menu.lst selon la distribution utilisée. Pour visualiser ce fichier, il convient de saisir la commande suivante :

#cat /boot/grub/menu.lst [Entrée]

Vous obtiendrez un résultat similaire à celui-ci :

# cat /boot/grub/menu.lst
#pragma ident   "@(#)menu.lst   1.1     05/09/01 SMI"
#
# default menu entry to boot
default 0
#
# menu timeout in second before default OS is booted
# set to -1 to wait for user input
timeout 10
#
# To enable grub serial console to ttya uncomment the following lines
# and comment out the splashimage line below
# WARNING: don't enable grub serial console when BIOS console serial
#       redirection is active!!!
#   serial --unit=0 --speed=9600
#   terminal serial
#
# Uncomment the following line to enable GRUB splashimage on console
splashimage /boot/grub/splash.xpm.gz
#
# To chainload another OS
#
# title Another OS
#       root (hd<disk no>,<partition no>)
#       chainloader +1
#
# To chainload a Solaris release not based on grub
#
# title Solaris 9
#       root (hd<disk no>,<partition no>)
#       chainloader +1
#       makeactive
#
# To load a Solaris instance based on grub
#
# title Solaris <version>
#       root (hd<disk no>,<partition no>,x)     --x = Solaris root slice
#       kernel /platform/i86pc/multiboot
#       module /platform/i86pc/boot_archive
#
# To override Solaris boot args (see kernel(1M)), console device and
# properties set via eeprom(1M) edit the "kernel" line to:
#
#   kernel /platform/i86pc/multiboot <boot-args> -B prop1=val1,prop2=val2,...
#
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris 10 5/08 s10x_u5wos_10 X86
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris failsafe
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
#---------------------END BOOTADM--------------------
#

Pour désinstaller grub du MBR, utilisez une disquette DOS pour démarrer la machine puis taper la commande suivante au prompt :

A> fdisk /mbr [Entrée]

ou utilisez la commande dd.

Grub est administré par la commande bootadm. Pour plus d'information, consultez le manuel de bootadm.

Processus Init

Le premier processus lancé par le noyau est Init. L'exécutable lancé est /sbin/init. Son rôle est de d'initialiser le système et de lancer certains autres services.

Niveaux d'exécution

Il existe 11 niveaux d'exécution ou RUNLEVELS sous Solaris. Dix des 11 sont réservés :

RUNLEVEL Description
0 Arrêt de la machine pour un système SPARC
S ou s Mode mono-utilisateur avec seul la partition racine montée
1 Mode mono-utilisateur pour la maintenance
2 Mode multi-utilisateur sans NFS
3 Mode multi-utilisateur avec NFS
4 Non-utilisé
5 Arrêt de la machine et coupure du courant
6 Redémarrage de la machine

Pour connaître le niveau d'exécution actuel de la machine, saisissez la commande suivante :

#who -r [Entrée]

Vous obtiendrez un résultat similaire à celui-ci :

# who -r
   .       run-level 3  mars 17 09:23     3      0  S

Pour modifier le niveau d'exécution courant, il convient d'utiliser la commande init ou telinit suivie du numéro du nouveau niveau d'exécution et éventuellement l'option suivante :

Option Description
Q ou q Demande à Init de relire le fichier /etc/inittab

Pour modifier le niveau d'exécution par défaut, il convient d'utiliser la commande svcadm -d.

Inittab

Le fichier /etc/inittab permet de définir les services à démarrer en fonction du RUNLEVEL :

# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# The /etc/inittab file controls the configuration of init(1M); for more
# information refer to init(1M) and inittab(4).  It is no longer
# necessary to edit inittab(4) directly; administrators should use the
# Solaris Service Management Facility (SMF) to define services instead.
# Refer to smf(5) and the System Administration Guide for more
# information on SMF.
#
# For modifying parameters passed to ttymon, use svccfg(1m) to modify
# the SMF repository. For example:
#
#       # svccfg
#       svc:> select system/console-login
#       svc:/system/console-login> setprop ttymon/terminal_type = "xterm"
#       svc:/system/console-login> exit
#
#ident  "@(#)inittab    1.41    04/12/14 SMI"
ap::sysinit:/sbin/autopush -f /etc/iu.ap
sp::sysinit:/sbin/soconfig -f /etc/sock2path
smf::sysinit:/lib/svc/bin/svc.startd    >/dev/msglog 2<>/dev/msglog </dev/console
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog

Dans l'exemple ci-dessus, chaque ligne non-commentée est composée de quatre champs, séparés par le caractère : :

Champ Nom Description
1 Identifiant Identifiant unique de la ligne composé de 1 à 4 caractères
2 RUNLEVELS Liste des niveaux d'exécution concernés par la ligne
3 Action Méthode utilisé pour lancer la commande se trouvant dans le champ 4
4 Commande Commande à lancer

L'analyse de notre fichier d'exemple indique que le champ action prend une des directives suivantes :

Directive Description
sysinit La commande est exécutée au démarrage da la machine avant les lignes boot et bootwait
powerfail La commande est exécutée quand init reçoit un signal SIGPWR d'un onduleur

Service Management Facility

Le SMF remplace le système de démarrage Unix System V basé sur des répertoires rcx.d.

Un service SMF est caractérisé par des entités :

  1. un SMF Manifest
    1. Propriétés par défaut du service
  2. une ou plusieurs méthodes
    1. un script permettant l'interaction avec le service
  3. un ou plusieurs exécutables
  4. un fichier journal
  5. un FMRI
    1. Fault Management Resource Identifier

Le fichier méthode de cron est /lib/svc/method/svc-cron:

#!/sbin/sh
#
# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident "@(#)svc-cron   1.2     04/11/05 SMI"
#
# Start method script for the cron service.
#

. /lib/svc/share/smf_include.sh

if [ -p /etc/cron.d/FIFO ]; then
        if /usr/bin/pgrep -x -u 0 -z `/sbin/zonename` cron >/dev/null 2>&1; then
                echo "$0: cron is already running"
                exit $SMF_EXIT_ERR_NOSMF
        fi
fi

if [ -x /usr/sbin/cron ]; then
        /usr/bin/rm -f /etc/cron.d/FIFO
        /usr/sbin/cron &
else
        exit 1
fi
exit $SMF_EXIT_OK

Une instance de service peut prendre plusieurs états :

  • UNINITIALIZED
    • Ceci est le statut initial de tout service, avant qu'il soit traité (et démarré) par svc.startd(1M).
  • OFFLINE
    • Cela signifie que le service est activé, mais qu'il n'est pas en cours de fonctionnement ou indisponible.
  • ONLINE
    • Ce statut indique que le service fonctionne. Ce statut est celui attendu lors du fonctionnement normal d'un service.
  • DEGRADED
    • Le service fonctionne, mais de manière limitée. Une restauration de la part de l'administrateur provoquera son passage en mode ONLINE.
  • MAINTENANCE
    • Le service est indisponible mais activé, et requiert une opération de l'administrateur afin d'être réparé et relancé.
  • DISABLED
    • Le service est désactivé et ne fonctionne pas. Il n'est pas lancé au démarrage de la machine.
  • LEGACY-RUN
    • Ce statut est utilisé pour des pseudo-services qui ne sont pas directement gérés par SMF. Il ne garantit pas que le service soit en fonctionnement.

Pour voir les service il convient d'utiliser la commande svcs -a :

# svcs -a
STATE          STIME    FMRI
legacy_run      9:23:54 lrc:/etc/rcS_d/S50sk98sol
legacy_run      9:24:42 lrc:/etc/rc2_d/S10lu
legacy_run      9:24:43 lrc:/etc/rc2_d/S20sysetup
legacy_run      9:24:43 lrc:/etc/rc2_d/S40llc2
legacy_run      9:24:43 lrc:/etc/rc2_d/S42ncakmod
legacy_run      9:24:44 lrc:/etc/rc2_d/S47pppd
legacy_run      9:24:44 lrc:/etc/rc2_d/S70uucp
legacy_run      9:24:44 lrc:/etc/rc2_d/S72autoinstall
legacy_run      9:24:45 lrc:/etc/rc2_d/S73cachefs_daemon
legacy_run      9:24:45 lrc:/etc/rc2_d/S81dodatadm_udaplt
legacy_run      9:24:45 lrc:/etc/rc2_d/S89PRESERVE
legacy_run      9:24:45 lrc:/etc/rc2_d/S94ncalogd
legacy_run      9:24:45 lrc:/etc/rc2_d/S98deallocate
legacy_run      9:24:47 lrc:/etc/rc3_d/S16boot_server
legacy_run      9:24:47 lrc:/etc/rc3_d/S50apache
legacy_run      9:24:49 lrc:/etc/rc3_d/S52imq
legacy_run      9:24:49 lrc:/etc/rc3_d/S80mipagent
legacy_run      9:24:49 lrc:/etc/rc3_d/S84appserv
disabled        9:23:11 svc:/network/iscsi_initiator:default
disabled        9:23:11 svc:/system/metainit:default
disabled        9:23:11 svc:/system/device/mpxio-upgrade:default
disabled        9:23:14 svc:/network/ipfilter:default
disabled        9:23:16 svc:/network/rpc/nisplus:default
disabled        9:23:16 svc:/network/rpc/keyserv:default
disabled        9:23:16 svc:/network/nis/server:default
disabled        9:23:16 svc:/network/nis/client:default
disabled        9:23:16 svc:/network/dns/client:default
disabled        9:23:16 svc:/network/ldap/client:default
disabled        9:23:18 svc:/network/inetd-upgrade:default
disabled        9:23:18 svc:/application/print/server:default
disabled        9:23:18 svc:/network/ntp:default
disabled        9:23:18 svc:/system/auditd:default
disabled        9:23:19 svc:/system/patch-finish:delete
disabled        9:23:19 svc:/system/mdmonitor:default
disabled        9:23:19 svc:/system/pools:default
disabled        9:23:19 svc:/system/rcap:default
disabled        9:23:22 svc:/network/rpc/bootparams:default
disabled        9:23:22 svc:/network/samba:default
disabled        9:23:22 svc:/network/winbind:default
disabled        9:23:22 svc:/network/wins:default
disabled        9:23:22 svc:/network/rarp:default
disabled        9:23:23 svc:/network/nfs/server:default
disabled        9:23:23 svc:/network/dhcp-server:default
disabled        9:23:25 svc:/application/gdm2-login:default
disabled        9:23:25 svc:/application/management/webmin:default
disabled        9:23:27 svc:/application/database/postgresql:version_81
disabled        9:23:27 svc:/application/database/postgresql:version_82
disabled        9:23:27 svc:/network/dns/server:default
disabled        9:23:27 svc:/network/routing/legacy-routing:ipv4
disabled        9:23:27 svc:/network/routing/legacy-routing:ipv6
disabled        9:23:28 svc:/network/routing/ndp:default
disabled        9:23:28 svc:/network/routing/rdisc:default
disabled        9:23:28 svc:/network/routing/ripng:default
disabled        9:23:28 svc:/network/ipv6-forwarding:default
disabled        9:23:28 svc:/network/routing/zebra:quagga
disabled        9:23:28 svc:/network/routing/ripng:quagga
disabled        9:23:29 svc:/network/routing/route:default
disabled        9:23:29 svc:/network/ipv4-forwarding:default
disabled        9:23:29 svc:/network/routing/rip:quagga
disabled        9:23:29 svc:/network/routing/ospf:quagga
disabled        9:23:29 svc:/network/routing/ospf6:quagga
disabled        9:23:29 svc:/network/routing/bgp:quagga
disabled        9:23:31 svc:/network/security/kadmin:default
disabled        9:23:31 svc:/network/security/krb5kdc:default
disabled        9:23:35 svc:/network/tnd:default
disabled        9:23:35 svc:/network/ipmievd:default
disabled        9:23:35 svc:/network/apocd/udp:default
disabled        9:23:36 svc:/network/nis/passwd:default
disabled        9:23:36 svc:/network/nis/update:default
disabled        9:23:36 svc:/network/nis/xfr:default
disabled        9:23:39 svc:/network/slp:default
disabled        9:23:42 svc:/system/consadm:default
disabled        9:23:45 svc:/system/tsol-zones:default
disabled        9:23:45 svc:/system/labeld:default
disabled        9:23:45 svc:/system/sar:default
disabled        9:23:45 svc:/system/iscsitgt:default
disabled        9:23:46 svc:/system/pools/dynamic:default
disabled        9:23:46 svc:/application/management/common-agent-container-1:default
disabled        9:24:22 svc:/application/x11/xvnc-inetd:default
disabled        9:24:26 svc:/network/rpc/ocfserv:default
disabled        9:24:27 svc:/network/rpc/rex:default
disabled        9:24:28 svc:/network/rpc/spray:default
disabled        9:24:28 svc:/network/rpc/wall:default
disabled        9:24:28 svc:/network/security/krb5_prop:default
disabled        9:24:28 svc:/network/swat:default
disabled        9:24:31 svc:/network/tname:default
disabled        9:24:31 svc:/network/uucp:default
disabled        9:24:31 svc:/network/chargen:dgram
disabled        9:24:31 svc:/network/chargen:stream
disabled        9:24:31 svc:/network/daytime:dgram
disabled        9:24:31 svc:/network/daytime:stream
disabled        9:24:32 svc:/network/discard:dgram
disabled        9:24:32 svc:/network/discard:stream
disabled        9:24:32 svc:/network/echo:dgram
disabled        9:24:32 svc:/network/echo:stream
disabled        9:24:32 svc:/network/time:dgram
disabled        9:24:32 svc:/network/time:stream
disabled        9:24:33 svc:/network/comsat:default
disabled        9:24:33 svc:/network/login:eklogin
disabled        9:24:33 svc:/network/login:klogin
disabled        9:24:34 svc:/network/rexec:default
disabled        9:24:34 svc:/network/shell:kshell
disabled        9:24:35 svc:/network/talk:default
online          9:23:10 svc:/system/svc/restarter:default
online          9:23:12 svc:/network/pfil:default
online          9:23:13 svc:/network/tnctl:default
online          9:23:14 svc:/network/loopback:default
online          9:23:14 svc:/system/filesystem/root:default
online          9:23:20 svc:/system/scheduler:default
online          9:23:20 svc:/system/installupdates:default
online          9:23:22 svc:/system/boot-archive:default
online          9:23:26 svc:/milestone/name-services:default
online          9:23:33 svc:/system/filesystem/usr:default
online          9:23:33 svc:/network/physical:default
online          9:23:34 svc:/milestone/network:default
online          9:23:36 svc:/system/identity:node
online          9:23:36 svc:/system/keymap:default
online          9:23:37 svc:/system/device/local:default
online          9:23:37 svc:/system/filesystem/minimal:default
online          9:23:39 svc:/system/cryptosvc:default
online          9:23:39 svc:/system/rmtmpfiles:default
online          9:23:40 svc:/system/resource-mgmt:default
online          9:23:40 svc:/system/name-service-cache:default
online          9:23:40 svc:/system/identity:domain
online          9:23:41 svc:/system/power:default
online          9:23:41 svc:/system/sysevent:default
online          9:23:42 svc:/system/device/fc-fabric:default
online          9:23:42 svc:/milestone/devices:default
online          9:23:43 svc:/platform/i86pc/eeprom:default
online          9:23:43 svc:/system/coreadm:default
online          9:23:46 svc:/network/initial:default
online          9:23:49 svc:/system/picl:default
online          9:23:52 svc:/system/manifest-import:default
online          9:23:54 svc:/milestone/single-user:default
online          9:23:56 svc:/network/service:default
online          9:23:57 svc:/system/filesystem/local:default
online          9:23:59 svc:/system/sysidtool:net
online          9:23:59 svc:/system/boot-archive-update:default
online          9:23:59 svc:/system/cron:default
online          9:24:00 svc:/application/print/ppd-cache-update:default
online          9:24:01 svc:/application/font/fc-cache:default
online          9:24:02 svc:/application/stosreg:default
online          9:24:06 svc:/application/opengl/ogl-select:default
online          9:24:16 svc:/network/routing-setup:default
online          9:24:16 svc:/network/rpc/bind:default
online          9:24:17 svc:/system/sysidtool:system
online          9:24:17 svc:/network/nfs/status:default
online          9:24:17 svc:/network/nfs/cbd:default
online          9:24:17 svc:/network/nfs/mapid:default
online          9:24:18 svc:/platform/i86pc/kdmconfig:default
online          9:24:18 svc:/milestone/sysconfig:default
online          9:24:18 svc:/system/sac:default
online          9:24:19 svc:/network/nfs/nlockmgr:default
online          9:24:19 svc:/network/inetd:default
online          9:24:20 svc:/system/postrun:default
online          9:24:20 svc:/system/utmp:default
online          9:24:20 svc:/system/console-login:default
online          9:24:21 svc:/application/management/wbem:default
online          9:24:35 svc:/network/rpc/gss:default
online          9:24:35 svc:/network/rpc/meta:default
online          9:24:36 svc:/application/x11/xfs:default
online          9:24:36 svc:/application/font/stfsloader:default
online          9:24:36 svc:/network/rpc/rstat:default
online          9:24:36 svc:/network/rpc/cde-calendar-manager:default
online          9:24:36 svc:/network/rpc/cde-ttdbserver:tcp
online          9:24:36 svc:/network/rpc/mdcomm:default
online          9:24:36 svc:/network/rpc/metamed:default
online          9:24:36 svc:/network/rpc/metamh:default
online          9:24:36 svc:/network/rpc/smserver:default
online          9:24:36 svc:/network/nfs/client:default
online          9:24:37 svc:/network/rpc/rusers:default
online          9:24:37 svc:/network/security/ktkt_warn:default
online          9:24:37 svc:/network/cde-spc:default
online          9:24:37 svc:/network/stdiscover:default
online          9:24:38 svc:/system/filesystem/autofs:default
online          9:24:38 svc:/network/stlisten:default
online          9:24:38 svc:/network/nfs/rquota:default
online          9:24:39 svc:/network/telnet:default
online          9:24:39 svc:/network/ftp:default
online          9:24:39 svc:/system/filesystem/volfs:default
online          9:24:39 svc:/system/system-log:default
online          9:24:39 svc:/network/finger:default
online          9:24:40 svc:/network/login:rlogin
online          9:24:40 svc:/network/ssh:default
online          9:24:40 svc:/network/shell:default
online          9:24:41 svc:/system/dumpadm:default
online          9:24:41 svc:/network/rpc-100235_1/rpc_ticotsord:default
online          9:24:41 svc:/application/management/seaport:default
online          9:24:42 svc:/application/management/sma:default
online          9:24:42 svc:/network/smtp:sendmail
online          9:24:43 svc:/application/management/snmpdx:default
online          9:24:43 svc:/system/fmd:default
online          9:24:43 svc:/network/http:apache2
online          9:24:45 svc:/application/management/dmi:default
online          9:24:45 svc:/milestone/multi-user:default
online          9:24:47 svc:/application/cde-printinfo:default
online          9:24:47 svc:/application/graphical-login/cde-login:default
online          9:24:49 svc:/milestone/multi-user-server:default
online          9:24:50 svc:/system/zones:default
online          9:24:51 svc:/system/basicreg:default
online          9:25:29 svc:/system/webconsole:console
offline         9:23:26 svc:/application/print/ipp-listener:default
offline         9:24:23 svc:/application/print/rfc1179:default

Pour lister les processus associés à un service, il convient d'utiliser la commande svcs -p <FMRI>:

# svcs -p svc:/system/sac:default
STATE          STIME    FMRI
online          9:24:18 svc:/system/sac:default
                9:24:18      392 sac
                9:24:19      397 ttymon

Pour consulter les détails d'un service il convient d'utiliser la commande svcs -l <FMRI> :

# svcs -l svc:/system/sac:default
fmri         svc:/system/sac:default
nom          SAF service access controller
activé       vrai
état         online
next_state   none
state_time   17 mars 2009 09:24:18 CET
logfile      /var/svc/log/system-sac:default.log
redémarreur  svc:/system/svc/restarter:default
contract_id  51
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/milestone/sysconfig (online)

Pour désactiver un service il convient d'utiliser la commande svcadm disable [-t] <FMRI>. L'option -t indique que le service est arrêté d'une manière temporaire et sera re-démarré au prochain re-boot du système :

# svcadm disable cron
# svcs -l cron
fmri         svc:/system/cron:default
nom          clock daemon (cron)
activé       faux
état         disabled
next_state   none
state_time   17 mars 2009 17:15:22 CET
logfile      /var/svc/log/system-cron:default.log
redémarreur  svc:/system/svc/restarter:default
contract_id
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/milestone/name-services (online)

La commande svcadm est aussi utiliser pour :

  • Démarrer un service. L'option -r précise que le démarrage des dépendances doit aussi être effectué :
#svcadm enable [-r] <FMRI> [Entrée]
  • Relancer un service :
#svcadm restart <FMRI> [Entrée]
  • Rafraîchir un service :
#svcadm refresh <FMRI> [Entrée]
  • Réactiver un service. Ceci est utilisé pour passer un service antérieurement en mode maintenance ou en mode Degraded vers le mode Online après la réparation du service concerné :
#svcadm clear <FMRI> [Entrée]

Pour consulter la méthode associée à un service, il convient d'utiliser la commande svcprop -p :

# svcprop -p start/exec system/cron
/lib/svc/method/svc-cron

Activer et Désactiver un Service

Vous allez travailler sur le service cron. Vérifiez d'abord l'état du service :

# svcs cron [Entrée]

Vous obtiendrez un résultat similaire à celui-ci :

# svcs cron
STATE          STIME    FMRI
disabled       17:15:22 svc:/system/cron:default

Démarrez maintenant le service cron :

# svcadm enable cron [Entrée]

Contrôlez maintenant son état :

# svcs cron [Entrée]

Vous obtiendrez un résultat similaire à celui-ci :

# svcs cron
STATE          STIME    FMRI
online         17:20:49 svc:/system/cron:default

Rendez votre service cron inutilisable :

# mv /lib/svc/method/svc-cron /lib/svc/method/svc-cron.old [Entrée]
# svcadm restart cron [Entrée]

Contrôlez maintenant son état :

# svcs cron [Entrée]

Vous obtiendrez un résultat similaire à celui-ci :

# svcs cron
STATE          STIME    FMRI
maintenance    17:23:53 svc:/system/cron:default

Identifiez maintenant le fichier log du service :

# svcs -x cron
svc:/system/cron:default (clock daemon (cron))
 État : maintenance depuis 17 mars 2009 17:23:53 CET
Motif : la méthode de démarrage a échoué plusieurs fois de suite, dernière tentative s'est arrêté avec l'état 1.
   Voir : http://sun.com/msg/SMF-8000-KS
   Voir : cron(1M)
   Voir : crontab(1)
   Voir : /var/svc/log/system-cron:default.log
Effet : le service ne fonctionne pas.

Examinez le fichier log pour connaître le problème à résoudre :

# cat /var/svc/log/system-cron:default.log
[ févr. 28 11:39:32 Disabled. ]
[ févr. 28 11:39:32 Rereading configuration. ]
[ févr. 28 11:40:11 Enabled. ]
[ févr. 28 11:40:27 Executing start method ("/lib/svc/method/svc-cron") ]
[ févr. 28 11:40:29 Method "start" exited with status 0 ]
[ févr. 28 12:06:04 Executing start method ("/lib/svc/method/svc-cron") ]
[ févr. 28 12:06:05 Method "start" exited with status 0 ]
[ févr. 28 13:01:48 Stopping because service disabled. ]
[ févr. 28 13:01:49 Executing stop method (:kill) ]
[ févr. 28 13:04:00 Executing start method ("/lib/svc/method/svc-cron") ]
[ févr. 28 13:04:01 Method "start" exited with status 0 ]
[ mars  6 15:52:24 Executing start method ("/lib/svc/method/svc-cron") ]
[ mars  6 15:52:34 Method "start" exited with status 0 ]
[ mars 17 09:23:58 Executing start method ("/lib/svc/method/svc-cron") ]
[ mars 17 09:23:59 Method "start" exited with status 0 ]
[ mars 17 17:15:22 Stopping because service disabled. ]
[ mars 17 17:15:22 Executing stop method (:kill) ]
[ mars 17 17:20:49 Enabled. ]
[ mars 17 17:20:49 Executing start method ("/lib/svc/method/svc-cron") ]
[ mars 17 17:20:49 Method "start" exited with status 0 ]
[ mars 17 17:21:49 Stopping because service restarting. ]
[ mars 17 17:21:50 Executing stop method (:kill) ]
[ mars 17 17:21:50 Executing start method ("/lib/svc/method/svc-cron") ]
[ mars 17 17:21:50 Method "start" exited with status 0 ]
[ mars 17 17:23:52 Stopping because service restarting. ]
[ mars 17 17:23:52 Executing stop method (:kill) ]
[ mars 17 17:23:52 Executing start method ("/lib/svc/method/svc-cron") ]
/sbin/sh: /lib/svc/method/svc-cron: introuvable
[ mars 17 17:23:52 Method "start" exited with status 1 ]
[ mars 17 17:23:52 Executing start method ("/lib/svc/method/svc-cron") ]
/sbin/sh: /lib/svc/method/svc-cron: introuvable
[ mars 17 17:23:52 Method "start" exited with status 1 ]
[ mars 17 17:23:52 Executing start method ("/lib/svc/method/svc-cron") ]
/sbin/sh: /lib/svc/method/svc-cron: introuvable
[ mars 17 17:23:53 Method "start" exited with status 1 ]

Notez la ligne :

/sbin/sh: /lib/svc/method/svc-cron: introuvable

Réparez maintenant le service cron :

# mv /lib/svc/method/svc-cron.old /lib/svc/method/svc-cron

Lancez le service cron :

# svcadm clear cron
# svcadm enable -r cron

Dernièrement, vérifiez le bon fonctionnement du service cron :

# svcs cron
STATE          STIME    FMRI
online         17:41:18 svc:/system/cron:default

Arrêt du Système

La commande shutdown

La commande utilisée pour arrêter le système est la commande shutdown :

shutdown [-y] [-gsecondes] [-irunlevel]

Les options sont :

Option Description
-y Commande non-intéractive
-gsecondes Délai de grâce en secondes
-irunlevel Choix du runlevel de destination

L'option -i peut prendre plusieurs valeurs :

Valeur Description
s Single User. Ceci est le comportement par défaut
0 Arrêt complet SPARC
5 Arrêt complet x86
6 Redémarrage

Pour mieux comprendre, saisissez la commande suivante pour arrêter la machine dans 6 minutes :

# shutdown -y -g360 -i0 [Entrée]

Vous obtiendrez un résultat similaire à celui-ci :

# shutdown -y -g360 -i0

Shutdown started.    mardi 17 mars 2009 17 h 46 CET

Broadcast Message from root (pts/3) on unknown mar. mars 17 17:46:...
The system unknown will be shut down in 6 minutes

showmount: unknown: RPC : programme non enregistré

Ouvrez un autre terminal puis saisissez la commande suivante pour rechercher le PID du processus shutdown :

# ps -ef | grep shutdown [Entrée]

Il convient maintenant de tuer le processus afin d'annuler l'arrêt du système :

#ps -ef | grep shutdown
    root  1555  1324   0 17:46:27 pts/3       0:00 /sbin/sh /usr/sbin/shutdown -y -g360 -i0
    root  1599  1578   0 17:47:37 pts/4       0:00 grep shutdown
# kill -9 1324

L'utilisation de la commande shutdown peut être accordée à d'autres utilisateurs de root en utilisant le fichier /etc/shutdown.allow

Autres commandes

Trois autres commandes existent pour arrêter la machine :

Commande Description
halt Arrête le système ( RUNLEVEL 0 )
reboot Re-démarre le système ( RUNLEVEL 5/6 )
poweroff Arrête le système ( RUNLEVEL 0 ) et essaie de couper l'alimentation

<html> <center> Copyright © 2019 Hugh Norris. </center> </html>

Menu