Table des matières
Version : 2020.01
Dernière mise-à-jour : 2020/01/30 03:28
SO212 - Gestion du Démarrage et de l'Arrêt
Plateforme SPARC
La séquence de boot d'une station SPARC est la suivante :
- La PROM charge le bootblock
- Le bootblock charge le fichier ufsboot
- ufsboot charge le noyau
- Le fichier /etc/system est lu
- Le noyau charge les modules
- Le noyau lance /sbin/init
- 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 octet 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 #pragma ident "@(#)menu.lst 1.2 10/06/11 SMI" # # Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # # With zfs root the active menu.lst file is /<pool>/boot/grub/menu.lst # This reference copy of the file is not used. # # 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: do not 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 Oracle Solaris 10 1/13 s10x_u11wos_24a X86 findroot (rootfs0,0,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive #---------------------END BOOTADM-------------------- #---------- ADDED BY BOOTADM - DO NOT EDIT ---------- title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot -s module /boot/amd64/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.
Le fichier /boot/grub/menu.lst ne doit jamais être modifié manuellement. Grub doit est administré par la commande bootadm :
# bootadm bootadm: a command option must be specified USAGE: bootadm update-archive [-vn] [-R altroot [-p platform>]] bootadm list-archive [-R altroot [-p platform>]] bootadm set-menu [-R altroot] key=value bootadm list-menu [-R altroot]
Il est donc possible de visualiser le menu de démarrage actuel ainsi que les options de Grub :
# bootadm list-menu The location for the active GRUB menu is: /boot/grub/menu.lst default 0 timeout 10 0 Oracle Solaris 10 1/13 s10x_u11wos_24a X86 1 Solaris failsafe
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 . run-level 3 Nov 30 06:44 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 :
# cat /etc/inittab # 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 :
- un SMF Manifest
- Propriétés par défaut du service
- une ou plusieurs méthodes
- un script permettant l'interaction avec le service
- un ou plusieurs exécutables
- un fichier journal
- un FMRI
- Fault Management Resource Identifier
Le fichier méthode de cron est /lib/svc/method/svc-cron:
# cat /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 6:44:47 lrc:/etc/rcS_d/S50sk98sol legacy_run 6:44:50 lrc:/etc/rc2_d/S10lu legacy_run 6:44:50 lrc:/etc/rc2_d/S20sysetup legacy_run 6:44:50 lrc:/etc/rc2_d/S40llc2 legacy_run 6:44:50 lrc:/etc/rc2_d/S42ncakmod legacy_run 6:44:50 lrc:/etc/rc2_d/S47pppd legacy_run 6:44:50 lrc:/etc/rc2_d/S70uucp legacy_run 6:44:50 lrc:/etc/rc2_d/S72autoinstall legacy_run 6:44:50 lrc:/etc/rc2_d/S73cachefs_daemon legacy_run 6:44:51 lrc:/etc/rc2_d/S81dodatadm_udaplt legacy_run 6:44:51 lrc:/etc/rc2_d/S89PRESERVE legacy_run 6:44:51 lrc:/etc/rc2_d/S94ncalogd legacy_run 6:44:51 lrc:/etc/rc2_d/S98deallocate legacy_run 6:44:51 lrc:/etc/rc3_d/S16boot_server legacy_run 6:44:51 lrc:/etc/rc3_d/S50apache legacy_run 6:44:51 lrc:/etc/rc3_d/S80mipagent disabled 6:44:39 svc:/system/metainit:default disabled 6:44:39 svc:/system/device/mpxio-upgrade:default disabled 6:44:39 svc:/network/ipsec/ike:default disabled 6:44:39 svc:/network/ipsec/manual-key:default disabled 6:44:39 svc:/network/ipfilter:default disabled 6:44:39 svc:/network/rpc/keyserv:default disabled 6:44:39 svc:/network/rpc/nisplus:default disabled 6:44:39 svc:/network/nis/server:default disabled 6:44:39 svc:/network/nis/client:default disabled 6:44:39 svc:/network/dns/client:default disabled 6:44:39 svc:/network/ldap/client:default disabled 6:44:39 svc:/network/winbind:default disabled 6:44:39 svc:/network/inetd-upgrade:default disabled 6:44:40 svc:/system/mdmonitor:default disabled 6:44:40 svc:/application/print/server:default disabled 6:44:40 svc:/network/ntp:default disabled 6:44:40 svc:/system/auditd:default disabled 6:44:40 svc:/system/patch-finish:delete disabled 6:44:40 svc:/system/pools:default disabled 6:44:40 svc:/system/rcap:default disabled 6:44:40 svc:/network/rpc/bootparams:default disabled 6:44:40 svc:/network/samba:default disabled 6:44:40 svc:/network/wins:default disabled 6:44:40 svc:/network/dhcp-server:default disabled 6:44:40 svc:/network/nfs/server:default disabled 6:44:40 svc:/network/rarp:default disabled 6:44:40 svc:/application/gdm2-login:default disabled 6:44:40 svc:/system/pools/dynamic:default disabled 6:44:40 svc:/application/management/webmin:default disabled 6:44:40 svc:/application/database/postgresql_83:default_32bit disabled 6:44:40 svc:/application/database/postgresql_83:default_64bit disabled 6:44:40 svc:/application/database/postgresql:version_81 disabled 6:44:40 svc:/application/database/postgresql:version_82 disabled 6:44:40 svc:/application/database/postgresql:version_82_64bit disabled 6:44:40 svc:/system/prepatch:default disabled 6:44:40 svc:/milestone/patching:default disabled 6:44:40 svc:/network/dns/server:default disabled 6:44:40 svc:/network/routing/legacy-routing:ipv4 disabled 6:44:40 svc:/network/routing/legacy-routing:ipv6 disabled 6:44:40 svc:/network/routing/ndp:default disabled 6:44:40 svc:/network/routing/rdisc:default disabled 6:44:40 svc:/network/ipv6-forwarding:default disabled 6:44:40 svc:/network/routing/ripng:default disabled 6:44:40 svc:/network/routing/zebra:quagga disabled 6:44:40 svc:/network/routing/ripng:quagga disabled 6:44:40 svc:/network/routing/route:default disabled 6:44:40 svc:/network/ipv4-forwarding:default disabled 6:44:40 svc:/network/routing/rip:quagga disabled 6:44:40 svc:/network/routing/ospf:quagga disabled 6:44:40 svc:/network/routing/ospf6:quagga disabled 6:44:40 svc:/network/routing/bgp:quagga disabled 6:44:40 svc:/network/security/kadmin:default disabled 6:44:40 svc:/network/security/krb5kdc:default disabled 6:44:40 svc:/network/tnd:default disabled 6:44:40 svc:/network/http:apache2 disabled 6:44:40 svc:/network/apocd/udp:default disabled 6:44:40 svc:/network/nis/passwd:default disabled 6:44:40 svc:/network/nis/update:default disabled 6:44:40 svc:/network/nis/xfr:default disabled 6:44:40 svc:/network/ipmievd:default disabled 6:44:40 svc:/network/ntp4:default disabled 6:44:40 svc:/network/slp:default disabled 6:44:40 svc:/system/consadm:default disabled 6:44:40 svc:/system/hotplug:default disabled 6:44:40 svc:/system/labeld:default disabled 6:44:40 svc:/system/tsol-zones:default disabled 6:44:40 svc:/system/iscsitgt:default disabled 6:44:40 svc:/system/sar:default disabled 6:44:49 svc:/application/x11/xvnc-inetd:default disabled 6:44:49 svc:/network/rpc/spray:default disabled 6:44:49 svc:/network/rpc/wall:default disabled 6:44:49 svc:/network/rpc/ocfserv:default disabled 6:44:49 svc:/network/rpc/rex:default disabled 6:44:49 svc:/network/security/krb5_prop:default disabled 6:44:49 svc:/network/comsat:default disabled 6:44:49 svc:/network/login:eklogin disabled 6:44:49 svc:/network/login:klogin disabled 6:44:49 svc:/network/rexec:default disabled 6:44:49 svc:/network/shell:kshell disabled 6:44:49 svc:/network/talk:default disabled 6:44:49 svc:/network/swat:default disabled 6:44:49 svc:/network/chargen:dgram disabled 6:44:49 svc:/network/chargen:stream disabled 6:44:49 svc:/network/daytime:dgram disabled 6:44:49 svc:/network/daytime:stream disabled 6:44:49 svc:/network/discard:dgram disabled 6:44:49 svc:/network/discard:stream disabled 6:44:49 svc:/network/echo:dgram disabled 6:44:49 svc:/network/echo:stream disabled 6:44:49 svc:/network/time:dgram disabled 6:44:49 svc:/network/time:stream disabled 6:44:49 svc:/network/tname:default disabled 6:44:50 svc:/network/uucp:default online 6:44:39 svc:/system/svc/restarter:default online 6:44:40 svc:/system/installupdates:default online 6:44:40 svc:/milestone/name-services:default online 6:44:40 svc:/network/pfil:default online 6:44:40 svc:/network/tnctl:default online 6:44:40 svc:/network/loopback:default online 6:44:40 svc:/system/filesystem/root:default online 6:44:40 svc:/system/scheduler:default online 6:44:41 svc:/system/boot-archive:default online 6:44:41 svc:/system/filesystem/usr:default online 6:44:41 svc:/platform/i86pc/eeprom:default online 6:44:42 svc:/system/keymap:default online 6:44:42 svc:/system/device/local:default online 6:44:42 svc:/system/filesystem/minimal:default online 6:44:42 svc:/network/ilomconfig-interconnect:default online 6:44:42 svc:/system/rmtmpfiles:default online 6:44:42 svc:/system/coreadm:default online 6:44:42 svc:/system/name-service-cache:default online 6:44:42 svc:/system/resource-mgmt:default online 6:44:42 svc:/system/power:default online 6:44:42 svc:/system/sysevent:default online 6:44:42 svc:/system/device/fc-fabric:default online 6:44:42 svc:/milestone/devices:default online 6:44:42 svc:/system/cryptosvc:default online 6:44:42 svc:/network/ipsec/ipsecalgs:default online 6:44:42 svc:/network/ipsec/policy:default online 6:44:42 svc:/system/pkgserv:default online 6:44:42 svc:/system/manifest-import:default online 6:44:42 svc:/system/patchchk:default online 6:44:43 svc:/application/print/ppd-cache-update:default online 6:44:47 svc:/network/physical:default online 6:44:47 svc:/milestone/network:default online 6:44:47 svc:/system/identity:domain online 6:44:47 svc:/system/identity:node online 6:44:47 svc:/system/picl:default online 6:44:47 svc:/milestone/single-user:default online 6:44:48 svc:/network/initial:default online 6:44:48 svc:/network/routing-setup:default online 6:44:48 svc:/system/filesystem/local:default online 6:44:48 svc:/network/shares/group:default online 6:44:48 svc:/system/sysidtool:net online 6:44:48 svc:/system/cron:default online 6:44:48 svc:/system/boot-archive-update:default online 6:44:49 svc:/network/rpc/bind:default online 6:44:49 svc:/system/sysidtool:system online 6:44:49 svc:/network/nfs/mapid:default online 6:44:49 svc:/network/nfs/cbd:default online 6:44:49 svc:/network/service:default online 6:44:49 svc:/platform/i86pc/kdmconfig:default online 6:44:49 svc:/network/nfs/status:default online 6:44:49 svc:/system/postrun:default online 6:44:49 svc:/milestone/sysconfig:default online 6:44:49 svc:/system/sac:default online 6:44:49 svc:/network/iscsi/initiator:default online 6:44:49 svc:/network/nfs/nlockmgr:default online 6:44:49 svc:/system/utmp:default online 6:44:49 svc:/system/console-login:default online 6:44:49 svc:/network/inetd:default online 6:44:49 svc:/application/management/wbem:default online 6:44:49 svc:/application/opengl/ogl-select:default online 6:44:50 svc:/network/rpc/gss:default online 6:44:50 svc:/network/nfs/client:default online 6:44:50 svc:/network/rpc/meta:default online 6:44:50 svc:/application/x11/xfs:default online 6:44:50 svc:/application/font/stfsloader:default online 6:44:50 svc:/network/rpc/rstat:default online 6:44:50 svc:/network/rpc/cde-calendar-manager:default online 6:44:50 svc:/network/rpc/cde-ttdbserver:tcp online 6:44:50 svc:/network/rpc/rusers:default online 6:44:50 svc:/network/rpc/mdcomm:default online 6:44:50 svc:/network/rpc/metamed:default online 6:44:50 svc:/network/rpc/metamh:default online 6:44:50 svc:/network/rpc/smserver:default online 6:44:50 svc:/network/cde-spc:default online 6:44:50 svc:/network/security/ktkt_warn:default online 6:44:50 svc:/network/finger:default online 6:44:50 svc:/network/login:rlogin online 6:44:50 svc:/network/shell:default online 6:44:50 svc:/system/filesystem/autofs:default online 6:44:50 svc:/network/nfs/rquota:default online 6:44:50 svc:/network/ftp:default online 6:44:50 svc:/network/stdiscover:default online 6:44:50 svc:/network/stlisten:default online 6:44:50 svc:/network/telnet:default online 6:44:50 svc:/system/dumpadm:default online 6:44:50 svc:/network/rpc-100235_1/rpc_ticotsord:default online 6:44:50 svc:/system/system-log:default online 6:44:50 svc:/system/filesystem/volfs:default online 6:44:50 svc:/network/ssh:default online 6:44:50 svc:/network/sendmail-client:default online 6:44:50 svc:/network/smtp:sendmail online 6:44:50 svc:/application/management/seaport:default online 6:44:50 svc:/application/management/snmpdx:default online 6:44:51 svc:/milestone/multi-user:default online 6:44:51 svc:/system/boot-config:default online 6:44:51 svc:/application/management/sma:default online 6:44:51 svc:/system/fmd:default online 6:44:51 svc:/application/management/dmi:default online 6:44:51 svc:/application/font/fc-cache:default online 6:44:51 svc:/application/stosreg:default online 6:44:51 svc:/milestone/multi-user-server:default online 6:44:51 svc:/system/zones:default online 6:44:51 svc:/application/cde-printinfo:default online 6:44:52 svc:/application/graphical-login/cde-login:default online 6:44:59 svc:/system/webconsole:console offline 6:44:40 svc:/application/management/ocm:default offline 6:44:40 svc:/application/print/ipp-listener:default offline 6:44:49 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 6:44:49 svc:/system/sac:default 6:44:49 412 sac 6:44:49 417 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 name SAF service access controller enabled true state online next_state none state_time Sat Nov 30 06:44:49 2019 logfile /var/svc/log/system-sac:default.log restarter svc:/system/svc/restarter:default contract_id 58 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 name clock daemon (cron) enabled false state disabled next_state none state_time Sat Nov 30 08:18:52 2019 logfile /var/svc/log/system-cron:default.log restarter 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 STATE STIME FMRI disabled 8:18:52 svc:/system/cron:default
Démarrez maintenant le service cron :
# svcadm enable cron
Contrôlez maintenant son état :
# svcs cron STATE STIME FMRI online 8:21:14 svc:/system/cron:default
Rendez votre service cron inutilisable :
# mv /lib/svc/method/svc-cron /lib/svc/method/svc-cron.old # svcadm restart cron
Contrôlez maintenant son état :
# svcs cron STATE STIME FMRI maintenance 8:22:28 svc:/system/cron:default
Identifiez maintenant le fichier log du service :
# svcs -x cron svc:/system/cron:default (clock daemon (cron)) State: maintenance since Sat Nov 30 08:22:28 2019 Reason: Start method failed repeatedly, last exited with status 1. See: http://sun.com/msg/SMF-8000-KS See: cron(1M) See: crontab(1) See: /var/svc/log/system-cron:default.log Impact: This service is not running.
Examinez le fichier log pour connaître le problème à résoudre :
# cat /var/svc/log/system-cron:default.log [ Nov 29 13:26:34 Disabled. ] [ Nov 29 13:26:34 Rereading configuration. ] [ Nov 29 13:26:37 Enabled. ] [ Nov 29 13:26:46 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 29 13:26:46 Method "start" exited with status 0 ] [ Nov 29 17:41:20 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 29 17:41:20 Method "start" exited with status 0 ] [ Nov 30 05:28:20 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 30 05:28:20 Method "start" exited with status 0 ] [ Nov 30 06:14:40 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 30 06:14:41 Method "start" exited with status 0 ] [ Nov 30 06:19:26 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 30 06:19:26 Method "start" exited with status 0 ] [ Nov 30 06:22:09 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 30 06:22:09 Method "start" exited with status 0 ] [ Nov 30 06:44:48 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 30 06:44:48 Method "start" exited with status 0 ] [ Nov 30 08:18:52 Stopping because service disabled. ] [ Nov 30 08:18:52 Executing stop method (:kill) ] [ Nov 30 08:21:14 Enabled. ] [ Nov 30 08:21:14 Executing start method ("/lib/svc/method/svc-cron") ] [ Nov 30 08:21:14 Method "start" exited with status 0 ] [ Nov 30 08:22:28 Stopping because service restarting. ] [ Nov 30 08:22:28 Executing stop method (:kill) ] [ Nov 30 08:22:28 Executing start method ("/lib/svc/method/svc-cron") ] /sbin/sh: /lib/svc/method/svc-cron: not found [ Nov 30 08:22:28 Method "start" exited with status 1 ] [ Nov 30 08:22:28 Executing start method ("/lib/svc/method/svc-cron") ] /sbin/sh: /lib/svc/method/svc-cron: not found [ Nov 30 08:22:28 Method "start" exited with status 1 ] [ Nov 30 08:22:28 Executing start method ("/lib/svc/method/svc-cron") ] /sbin/sh: /lib/svc/method/svc-cron: not found [ Nov 30 08:22:28 Method "start" exited with status 1 ]
Notez la ligne :
/sbin/sh: /lib/svc/method/svc-cron: not found
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 8:24:47 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 Shutdown started. Sat Nov 30 08:26:05 CET 2019 Broadcast Message from root (pts/2) on solaris.i2tch.loc Sat Nov 30 08:26:05... The system solaris.i2tch.loc will be shut down in 6 minutes showmount: solaris.i2tch.loc: RPC: Program not registered
Ouvrez un autre terminal puis saisissez la commande suivante pour rechercher le PID du processus shutdown :
# ps -ef | grep shutdown root 907 824 0 08:26:06 pts/2 0:00 /sbin/sh /usr/sbin/shutdown -y -g360 -i0 root 948 932 0 08:27:14 pts/3 0:00 grep shutdown
Tuez maintenat le processus du shutdown :
# kill -9 907
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 © 2020 Hugh Norris. </center> </html>