[Résolu] Ordre de priorité dans un script init?

Bonjour les gens :slightly_smiling:

La question me semble simple, mais malgrès quelques recherches sous google, je suis tombé seulement sur des réponses me renvoyant vers la fonction “update-rc.d” .

Alors que je ne suis pas sur que cette fonction soit celle que je recherce.

Je m’explique :slightly_smiling: :

Je souhaite attribué une priorité dès le lancement de mon script de démarrage, tel le suivant :

[code]#############################################

DO NOT EDIT ANYTHING BELOW THIS LINE!

#############################################
usage() {
echo "Usage: ${SRCDS_NAME} (stop|start|restart)"
exit 2
}

if [ -z $1 ]; then
usage
fi

srcds_start() {
OWD=pwd
cd $SRCDS_PATH
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}
cd $OWD
}

srcds_stop() {
screen -dr ${SRCDS_NAME} -X quit
}

srcds_restart() {
srcds_stop
srcds_start
}

case $1 in
stop)
srcds_stop
;;
start)
srcds_start
;;
restart)
srcds_restart
;;
*)
usage
esac

exit 0
[/code]

J’aimerais donc un petit coup de pouce pour sa svp :slightly_smiling:

ben c’est simple :laughing:

update.rc-d permet de faire cela proprement. donc sa gère tout les niveau , mai avant sa ce passe comme ceci:

le script est déposer dans /etc/init.d
ensuite on choiri le niveau Et l’ordre dans le qu’elle est lancer le script. update.rc-d permet de le faire facilment.

ce qui va placer les lien dans

rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d

par défaut c’est le niveau 2 qui est lancer aux boot. Et le (dans les rep rc*.d) S = start et K = kill
Rc6 =on étin le pc (euh pas sure mai bon)
et pour le reboot je me souvien plus :s

donc avec update.rc-d tu peux choisi le niveau de démarrage et le niveau d’arret consulte le man pour la syntax :slightly_smiling:

donc pour travailler sur ton scripte tu fait /etc/init.d/tonscript start
vala :stuck_out_tongue:

Bien merci Panthère pour ces infos, mais je ne suis pas sur d’avoir compris … :s

En fait d’après ce que j’ai lu, cette fonction, n’est pas exactement ce que je recherche.

J’aimerais simplement connaitre la commande à indiqué en plus dans mon init.d afin qu’il démarre toujours avec un niveau de processus souhaité (de -20 priorité max à 20 priorité basse).

Un simple argument à rajouter du genre “-PRI ‘-20’” ou quelque chose de simple dans le genre à mettre directement dans mon script, car mes scripts sont très souvent relancés.

Et désolé si la fonction donné suffit, c’est que j’aurais mal compris alors ^^’

erf j’ai crut que tu voulai parler de la priorité du démarrage des application pas de le politesse :slightly_smiling:

donc :
c’est nice et renice
nice pour lancer l’application
et renice pour changer.

le plus simple c’est de placer ton scripte quelque par
puis tu fait un: nice -n 19 chemin_ton_script

perso aux boot je me suis bricoler ceci.Que je lance en dernier , si ton script est lancer avant tu peux donc le rajouter dans la list
mai si tu le redemare il faut aussi le relancer. m’en fin je fait sa rarement

function autorenice () {
	(
		N=$1
		P=$2
		K=$3
		P2=`ps -T -C $N -o spid=`
		if [ "$P2" = "" ] ;then
			echo "no found $N"
			return 0
		fi
		if [ ! -z "$K" ] ;then
				ps -T -C $N -o spid= |awk '{print $1}' | xargs kill -s $K 2> /dev/null
		else
				ps -T -C $N -o spid= |awk '{print $1}' | xargs renice $P 2> /dev/null
		fi
	)
}

if [ "$1" = "start" ] ;then
echo "Gunrenice ver 0.1 "
	autorenice "avahi-daemon" "19"
	autorenice "cron" "19"
	autorenice "cupsd" "19"
	autorenice "bash" "1"
	autorenice "dbus-daemon" "10"
	autorenice "dbus-launch" "10"
	autorenice "hddtemp" "19"
	autorenice "hald" "15"
	autorenice "hald-runner" "15"
	autorenice "hald-addon-input" "14"
	autorenice "hald-addon-acpi" "19"
	autorenice "hald-addon-storage" "19"
	autorenice "portmap" "10"
	autorenice "lisa" "19"
	autorenice "syslogd" "10"
	autorenice "system-tools-backends" "10"
	autorenice "ulogd" "9"
	autorenice "udevd" "-6"
	autorenice "pcscd" "19" "18"
	autorenice "x-session-manager" "8"
	autorenice "perl" "19"	
	autorenice "atd" "19"
	autorenice "Xorg" "1"
fi
exit 0

Ok parfait :slightly_smiling:

Maintenant me reste à bien trouver comment l’utiliser ^^’

Et normalement sa ce passe comme sa =>

[code]#!/bin/sh

case “$1” in
’start’)
nice -n -19 /etc/init.d/nomdemonfichierscriptinit start
;;
‘stop’)
/etc/init.d/nomdemonfichierscriptinit stop
;;
*)
echo “Usage: $0 { start | stop }”
;;
esac
exit 0
[/code]

Testé et vérifier, sa roule bien :smiley:

Merci pour cette aide Panthère :wink:

Pour plus d’infos, une rapide explications de ce que j’ai trouvé sur google :

Fonction “nice”

[quote=“http://pagesperso-orange.fr/cspoires/linux/commandes.html”]Pour gérer la priorité des processus.
La priorité d’un processus est un nombre entier relatif compris entre -20 (priorité haute) et 19 (priorité basse).
Par défaut, les programmes lancés par les utilisateurs du système ont la priorité 0 (priorité moyenne).
Certains services sont lancés par le système avec une priorité différente de 0.
Pour voir la priorité des processus lancés, utilisez le programme top : il vous affiche la liste des processus classés par utilisation du processeur et actualisée toutes les 5 secondes. La quatrième colonne intitulée NI indique la priorité. Pour quitter top, appuyez sur q.
Seul le root a le droit de lancer des processus avec une priorité comprise entre -20 et -1 inclus.
Pour lancer un programme avec une priorité x (x compris entre -20 et 19), tapez :

nice -n x nom_du_programme

Exemple : # nice -5 /usr/bin/mon_prog exécute le programme /usr/bin/mon_prog avec la priorité -5. [/quote]

A voir la fonction “renice”

[quote=“http://pagesperso-orange.fr/cspoires/linux/commandes.html”]renice valeur PID_processus Pour modifier le facteur de priorité d’un processus déjà lancé. Il faut être soit root soit le propriétaire du processus et connaître son PID. Exemple :

nice +12 1100 affecte la priorité 12 au programme dont le PID vaut 1100.[/quote]

Et dans un sujet parrallèle, la fonction “ionice” qui gère elle la priorité des accès disques :slightly_smiling:

PS : nice = bien / gentil et donc on appel cette fonction la “gentillesse” car on indique alors que plus le processus est “nice” donc gentil, plus il laisse de priorité à ces compères :smt005