# [howto] initng

## bouleetbil

Bonsoir,

En ce moment je fais des essais avec initng qui pourra à terme remplacer sysvinit 

1. Explication 

Voici une explication de initng

InitNG remplace le System V Init (sysvinit) 

Il remplace aussi tous les scripts de démarrage, ce qui fait qu'on n'utilise plus /etc/init.d/*. Ca peut aussi rendre pas mal de documentations obsolètes ou inappropriées.

Par exemple:

1) pour démarrer manuellement un service avec le sysvinit, on ferait :

/etc/init.d/unservice start

avec initng, on fait comme ceci:

ngc -u daemon/unservice

2) idem, pour arrêter ce service avec sysvinit:

/etc/init.d/unservice stop

ou avec initng:

ngc -d daemon/unservice

3) pour ajouter un service au démarrage avec sysvinit:

rc-update add unservice default

ou avec initng:

ng-update add unservice

InitNG utilise deux formats de fichiers de «scripts»: XML ou «.i». 

Aprés cette petite explication, on peux se lancer dans l'installation.  :Wink: 

Je me suis basé sur la version cvs. Il est possible de cumuler initng et sysvinit  c'est au niveau du gestionnaire de boot que ce se fera le choix.

2. Pré installation

Si vous avez déjà installé initng il faut le désinstaller :

```

# emerge -C initng

```

Ensuite, si vous utilisez genkernel il faut modifier le script /usr/share/genkernel/generic/linuxrc

Ajouter après :

```
 real_init\=*)

         REAL_INIT=`parse_opt "${x}"`

         ;;

```

ceci

```

 real_initd\=*)

         REAL_INITD=`parse_opt "${x}"`

         ;;

```

Remplacer les 2 occurences de 

```
/sbin/init ${REAL_INIT}
```

 par 

```
/sbin/${REAL_INITD} ${REAL_INIT}
```

Recompilez l'initrd :

```

# genkernel --gensplash=Metal-Tosh --install initrd

```

(Choisir votre gensplash)

Ebuild pour initng-cvs :

```

# Copyright 1999-2005 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# 

ESVN_REPO_URI="http://svn.initng.thinktux.net/initng/trunk"

ESVN_PROJECT="initng"

inherit subversion

DESCRIPTION="A next generation init replacement"

HOMEPAGE="http://initng.thinktux.net/"

SRC_URI=""

LICENSE="GPL-2"

SLOT="0"

KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"

PLUGINS="dev doc also bash_launcher chdir chroot conflict cpout cron critical

   daemon dllaunch envparser find fstat history initctl interactive iparser

   last limit logfile netprobe idleprobe ngc2 ngcs pause pidfile reload

   renice rlparser simple_launcher splash usplash stcmd stdout suid syncron

   syslog unneeded jbx"

IUSE="debug ${PLUGINS}"

S=${WORKDIR}/${PN}

pkg_preinst() {

   ewarn "All plugins are disabled by default, check USE flags"

}

src_unpack() {

   subversion_src_unpack

   ./autogen.sh || die "autogen failed"

}

src_compile() {

   ECONF_OPTS="--prefix=/"

   for plugin in ${PLUGINS}

   do

      ECONF_OPTS="${ECONF_OPTS} $(use_with ${plugin})"

   done

   econf ${ECONF_OPTS}

   emake || die

}

src_install() {

   make install DESTDIR="${D}" || die

   # Dont need libtool linker scripts, so punt em

   find "${D}" -name '*.la' -exec rm {} \;

   # other packages install these

   rm "${D}"/sbin/{{ifplugd,wpa_cli}.action} || die

   dodoc README FAQ AUTHORS ChangeLog NEWS TEMPLATE_HEADER TODO

}

pkg_postinst() {

   einfo "remember to add init=/sbin/initng in your grub or lilo config"

   einfo "to use initng Happy testing."

}

```

3. Installation

Démasquer initng-cvs :

```
# echo sys-apps/initng-cvs ~x86 >> /etc/portage/package.keywords
```

Gestion de la variable USE :

Editer /etc/portage/package.use pour ajouter ceci:

```
sys-apps/initng-cvs dev doc also bash_launcher chdir chroot conflict cpout cron critical daemon dllaunch envparser find fstat history initctl interactive iparser last limit logfile netprobe idleprobe ngc2 ngcs pause pidfile reload renice rlparser simple_launcher -splash usplash stcmd stdout suid syncron syslog unneeded -jbx
```

De cette manière tous les plugins disponibles seront installés. Sauf splash chez moi, la compilation plante sur cela : initng_splash.c:221 et jbx plante sur initng_jbx.c:203: warning: nested extern declaration of `initng_plugn_hook_del'

Installer

```
# emerge initng-cvs
```

4. Configuration du gestionnaire de boot

Pour les utilisateurs de genkernel :

Ajouter à l'entrée de GRUB ou dans la section append de LILO[/code][/b] 

```
real_initd=init
```

Cela bootera normalement.

Pour utiliser initng ajouter

```
real_initd=initng
```

Sans genkernel dans la section append de LILO ou dans l'entrée de GRUB

```
init=/sbin/initng
```

4. Configuration initng

Pour ajouter un script au démarrage ou le supprimer utiliser :

```
# ng-update 
```

Par contre, je n'ai pas encore réussi à démarrer avec initng  :Crying or Very sad:  . pour le moment je bloque sur hdparm. En fait il faut adapter les scripts de démarrage. Donc, au fur et à mesure que j'avancerais je posterais mes scripts.

----------

## geekounet

C'est sympa de faire un howto sur initng  :Very Happy:  Et l'ebuild CVS à l'air sympa  :Smile: 

En ce qui me concerne, je tourne avec la version 0.5.3 qui marche plutôt bien, à part les mixer alsa qui sont pas restaurés, j'ai pas vraiment planché dessus encore, de plus que je démarre rarement avec (seulement pour faire joujou ou quand je suis pressé).

Mais je suis dérouté à chaque changement de version parce que le format des scripts change tout le temps  :Confused: , donc je trouve ça dur à maintenir pour le moment. Vivement que ça soit stabilisé...

----------

## bouleetbil

Merci en ce qui concerne l'ebuild je l'ai trouvé ici http://svn.initng.thinktux.net/initng/trunk. Il a juste fallu modifier :

```
ESVN_REPO_URI="http://svn.initng.thinktux.net/initng/trunk" 
```

 car cela ne pointer au bon endroit.

----------

## PabOu

 *bouleetbil wrote:*   

> InitNG remplace le System V Init (sysvinit) 
> 
> Il remplace aussi tous les scripts de démarrage, ce qui fait qu'on n'utilise plus /etc/init.d/*. Ca peut aussi rendre pas mal de documentations obsolètes ou inappropriées.

 

et quels sont les avantages de passer à InitNG ?

----------

## BuBuaBu

Un boot beaucoup plus rapide. (4 s chez moi après le chargement du kernel.

----------

## bouleetbil

Oui, c'est juste pour booter plus vite, même si on redemarre pas beaucoup sous linux   :Laughing: 

Bon j'ai réglé mon problème avec hdparm voici mon script c'est une adaptation du script rc originale :

```

service system/hdparm {

   need = system/initial;

   env_file = /etc/conf.d/hdparm;

   script start = {

checkconfig() {

   drives=""

   cdroms=""

   for i in `dir /dev/discs 2>/dev/null`

   do

      if [ ! -n "`ls -la /dev/discs/${i} | grep scsi`" ]

      then

         all_discs="${all_discs} `basename ${i}`"

      elif [ -n "${all_args}" ]

      then

         echo "Skipping $i hdparm does not support SCSI devices."

      fi

   done

   for i in `dir /dev/cdroms 2>/dev/null`

   do   

      if [ ! -n "`ls -la /dev/cdroms/${i} | grep scsi`" ]

      then

         all_cdroms="${all_cdroms} `basename ${i}`"

      elif [ -n "${all_args}" ]

      then

         echo "Skipping $i hdparm does not support SCSI devices."

      fi

   done

   for i in ${all_discs}

   do

      tmp_args=${i}_args

      eval hd_args=\$${tmp_args}

      if [ -n "${hd_args}" ]

      then

         drives="$drives $i"

      fi

   done

   for i in ${all_cdroms}

   do

      tmp_args=${i}_args

      eval hd_args=\$${tmp_args}

      if [ -n "${hd_args}" ]

      then

         cdroms="$cdroms $i"

      fi

   done

   }

   echo "Starting hdparm"

   checkconfig

   

   if [ -n "${all_args}" ]

   then   

      for i in ${all_discs}

      do

         echo "Running hdparm on ${i}"

         hdparm ${all_args} /dev/discs/${i}/disc &> /dev/null

         

      done

      for i in ${all_cdroms}

      do

         ebegin "Running hdparm on ${i}"

         hdparm ${all_args} /dev/cdroms/${i} &> /dev/null

         eend $? "Failed to start hdparm on ${i}."

      done

   else

      for i in ${drives}

      do

         tmp_args=${i}_args

         eval hd_args=\$$tmp_args

         echo "Running hdparm on ${i}"

         hdparm $hd_args /dev/discs/${i}/disc &> /dev/null

         

      done

      for i in ${cdroms}

      do

         tmp_args=${i}_args

         eval hd_args=\$$tmp_args

         echo "Running hdparm on ${i}"

         hdparm $hd_args /dev/cdroms/${i} &> /dev/null

         

      done

   fi

}

```

Après je m'attaque dbus  qui plante aussi  :Wink: 

J'en profite pour poster 1 script sympa trouvé sur le wiki gentoo

```

#!/bin/sh

ls -1 /etc/runlevels/ | while read RUNLEVEL

   do ls -1 /etc/runlevels/${RUNLEVEL}/ | while read DAEMON

      do HAS_D=`find /etc/initng -iname ${DAEMON}.i`

         if [ ! -n "$HAS_D" ]; then

            echo -en '\E[47;31m'"\033[1mERROR\033[0m: ${DAEMON}.i not found.\n"

         fi

         if [ -n "$HAS_D" ]; then

            if [ "$RUNLEVEL" = "boot" ]; then

               NG_LEVEL="system"

            elif [ "$RUNLEVEL" = "single" ]; then

               NG_LEVEL="single"

            else

               NG_LEVEL="default"

            fi

            ng-update add ${DAEMON} ${NG_LEVEL}

         fi

      done

   done

```

Il permet d'ajouter à initng l'équivalent du script rc s'il éxiste et sinon signale une erreur.

----------

## truc

salut, initng-9999 est disponible directement dans portage, ce qui est étonnant c'est qu'il n'a pas tous ces use flags? je ne trouve rien de particulier sur eux d'ailleurs?(arf si en fait certains sont un peu documenté sur le site d'initng. Quoiqu'il en soit, le ./autogen.sh de l'ebuild est obselete:

```
THIS SCRIPT IS OBSOLTED!                                                   |

|  it will be removed next days.                                              |

|  use this:                                                                  |

|  make -f Makefile.cvs                                                       |

|  or:                                                                        |

|  autoreconf --force --install 
```

Donc je doute que cette ébuild fonctionne encore, mais il peut-être interessant de s'en refaire un dans un overlay avec tous les use flags, (et le  ewarn "All plugins are disabled by default, check USE flags"  :Wink: 

arf je viens de voir qu'il y a déjà un ebuild tout fait dans l'"archive svn" (aucune idée comment le dire  :Confused:   Je veux dire dans distfiles/svn-src/initng ) 

Et puis pour chipoter c'est pas cvs mais svn .. m'enfin..

Sinon, ici, ça démarre, ça s'est amélioré pas mal déjà, car maintenant ça monte la racine / en premier... Ce qui évite d'avoir des mountpoints qui n'existent pas.. Enfin c'était comme ça la première fois que je l'avais essayé.. ça date un peu maintenant..

Bref...

 *pierreg wrote:*   

> C'est sympa de faire un howto sur initng  Et l'ebuild CVS à l'air sympa 
> 
> En ce qui me concerne, je tourne avec la version 0.5.3 qui marche plutôt bien, à part les mixer alsa qui sont pas restaurés, j'ai pas vraiment planché dessus encore, de plus que je démarre rarement avec (seulement pour faire joujou ou quand je suis pressé).
> 
> Mais je suis dérouté à chaque changement de version parce que le format des scripts change tout le temps , donc je trouve ça dur à maintenir pour le moment. Vivement que ça soit stabilisé...

 

J'ai aussi (eu  :Smile:  ) un problème avec alsa, mais comment dire..  Un peu différent, j'ai une question pour toi pierreg chez toi, alsa est compilé en dur ou en module dans ton noyau? Chez moi c'est en module) Si je demande c'est que je suis étonné de voir qu'alsasound semble s'être lancé chez toi, (même si les mixer n'étaient pas bon..)

Je m'explique: (c'est pas pour raconter ma vie, juste au cas où, ça peut servir et puis vous aurez peut-être des critiques à faire..)

dans system/alsasound.i on a

```
...

service system/alsasound {

need = system/bootmisc;

use = system/coldplug system/alsasound/cards system/static-modules system/alsasound/ioctl32 system/alsasound/oss system/alsasound/seq;

...

```

sur le site d'initng on peut lire use -->Service uses service, IF the service is in "starting" state (for example if it's in a runlevel starting it) we depend on it. 

Je ne vois pas trop ce qu'ils veulent dire par là, mais ce que je vois c'est que system/alsasound/cards n'est pas lancé, et donc aucune chance pour que les modules correspondants à ma carte soient chargés  :Confused: , Bref vous me direz ce que vous en pensez mais j'ai mis system/alsasound/cards dans need plutôt que dans use ce qui donne

(toujours dans system/alsasound.i)

```
...

service system/alsasound {

need = system/bootmisc system/alsasound/cards;

use = system/coldplug system/static-modules system/alsasound/ioctl32 system/alsasound/seq system/alsasound/oss;

...
```

Et là effectivement les modules sont chargés, (/proc/asound est créé (cf mon post sans réponse...) Et alsasound démarre enfin...

Mais comme le dit pierreq les mixers ne sont pas réglés, pourtant y'a le service system/alsasound/mixerstate (dans system/alsasound.i))  qui est là pour ça, mais il dépend de system/alsasound donc on ne voit pas forcément ce qu'on peut en faire..

En fait d'après ce post, (j'ai bien fouillé pour le trouvé celui là...) il suffit d'ajouter le service system/alsasound/mixerstate au runlevel default

```
ng-update add system/alsasound/mixerstate default
```

et de demander au service alsasound de l'arreter lorsque on arrete alsasound

ajouter system/alsasound/mixerstate à also_stop  dans le service alsasound:

ce qui nous donne 

(toujours dans system/alsasound.i)

```
...

service system/alsasound {

    need = system/bootmisc system/alsasound/cards;

    use = system/coldplug system/static-modules system/alsasound/ioctl32 system/alsasound/seq system/alsasound/oss;

    also_stop = system/alsasound/cards system/alsasound/ioctl32 system/alsasound/seq system/alsasound/oss system/alsasound/mixerstate;

...
```

Voila, j'pense avoir été à peu près clair si toutes fois vous aviez des questions/remarques etc.. n'hésitez pas:)

BTW: pour me logger graphiquement et automatiquement j'utilisais ce TIP: Démarrer une session graphique automatiquement y'en a qui ont déjà un truc tout fait? où je dois chercher tout seul pour refaire ce comportement (que j'aimais bien.. :Wink: ?Last edited by truc on Wed Mar 15, 2006 7:26 am; edited 1 time in total

----------

## truc

j'viens de trouver ça: 

 */usr/doc/initng-9999/imanual.txt wrote:*   

> service system/foo {
> 
>    need = system/initial system/mountfs;
> 
>    use = system/alsasound;
> ...

 

Avec ça c'est tellement plus clair! Maintenant je comprends pourquoi dans le use il y a "tant" de sous-services de alsasound (du style system/alsasound/ioctl32 ou system/modules/depmod ) qui me sont inutiles, je comprends également pourquoi il est dit qu'avec initng on peut (facilement (c'est moi qui l'ajoute celui là..)) controler plus de chose.  :Smile: 

En fait (pour ceux qui voudraient être sûr), dans mon cas par exemple, je vais rajouter system/alsasound/cards au default runlevel, ainsi, alsasound devra attendre  que system/alsasound/cards soit lancé avant de pouvoir se lancer à son tour. (dans le genre les trucs interessants à ajouter il y a aussi : system/alsasound/seq ou encore system/alsasound/oss

Le truc trop bien c'est que ainsi, c'est qu'au final, system/alsasound.i sera le fichier par défaut, et je n'aurai donc pas à m'en soucier lors de la prochaine update..  :Very Happy: 

Voila, la vie est trop bien.. (ma vie sociale aussi je vous assure...)

EDIT: une option bien sympa de ngc également:

```
ngc -H

...

 [-j] --restart_from opt               : Stop all services, and start from

...
```

 va vous permettre par exemple (ngc -j default) de tester vos changements, sans redémarrer totalement l'ordinateur, c'est très sympa

à voir également le ngdc avec un fake-init etc.. ça peut être très pratique (cf man page bien sur)Last edited by truc on Fri Mar 10, 2006 10:34 pm; edited 3 times in total

----------

## geekounet

ALSA est en dur dans le kernel chez moi, donc j'ai pas eu ce pb là. Pour le mixerstate, j'avais réussi à régler ce pb déjà, de la manière que tu expliques.

----------

## truc

ok tout est clair! j'me demandais aussi, merci de l'info..

EDIT 09/03/2006: Si il y en a qui font joujou encore, je leur conseille de faire un tour du coté de  /usr/portage/distfiles/svn-src/initng/trunk, ou quelque chose comme ça de mémoire.; y'a plein de chose! Du style des scripts pour vérifier la syntaxe des fichiers.i que vous créez, etc..

Vous trouverez également  un fichier texte iimanual.txt qui n'est pas recopié dans /usr/share/doc/initng c'est dommage car il est beaucoup plus complet( que le imanual.txt qui s'y trouve..).

Le site a changé, mes liens ne doivent plus marcher, mais je ne peux pas encore les mettre a jour car le site est encore très incomplet. Mais vous pouvez (ceux qui tourne en ~arch) déjà tester des nouvelles fonctionnalités de celui ci, avec un ebuild qui y est donné etc.. cf ici: http://initng.thinktux.net/wiki/Install_Gentoo et l'ebuild donc je vous parle est sur le svn repository. (c'est le initng-9998.ebuild pas le 9999 !)

RE-EDIT 10/03/2006:

Pour ceux qui arrivent, qui sont en ~arch, il vous suffit d'installer initng-ifiles qui installera automatiquement initng, une fois biensûr que vous aurez rajouté les ebuilds conrespondant qui se trouvent ici, toujours pour vous n'oubliez pas de vous reporter à cette doc pour configurer les plugins à installer directement dans /etc/make.conf.

voili-voilou;)Last edited by truc on Fri Mar 10, 2006 10:42 pm; edited 1 time in total

----------

## Enlight

la différence entre use et need est assez simple : avec need X on veut absolument que le service X tourne, sinon on ne fait rien. Avec use, si et seulement si le service est supposé être démarré, on l'attends.

Exemple : je te mets un script de fsck, normalement c'est un des tout premiers truc qui se fait au démarrage, si je mets need fsck dans mes scripts puis que l'utilisateur décide qu'il n'y a pas besoin de fsck (un utilisateur averti d'XFS par exemple qui sait que fsck.xfs ne fait que renvoyer 0) ben tous les scripts avec need fsck sont à l'eau. si j'avais mis use ce serait bon.

----------

## truc

bah quoi j'avais pas bien expliqué finalement  :Question:  zut j'pensais avoir été clair  :Laughing:  arf pas grave, En fait, j'ai compris tout ça en lisant le iimanual.txt, et non le imanual.txt, c'est juste pour ça que j'avais fait une petite précision.. vous trouverez bien plus d'info dans dans le premier.. 

Il semble tout fois être recopié, dans les doc maintenant, c'est bien;)

EDIT: j'apprécie ton exemple de l'utilisateur avertis soit dit en passant.. XFS  :Laughing:  t'en manques pas une...

----------

## Enlight

 *truc wrote:*   

> bah quoi j'avais pas bien expliqué finalement  zut j'pensais avoir été clair  arf pas grave, En fait, j'ai compris tout ça en lisant le iimanual.txt, et non le imanual.txt, c'est juste pour ça que j'avais fait une petite précision.. vous trouverez bien plus d'info dans dans le premier.. 
> 
> Il semble tout fois être recopié, dans les doc maintenant, c'est bien;)
> 
> EDIT: j'apprécie ton exemple de l'utilisateur avertis soit dit en passant.. XFS  t'en manques pas une...

 

oups j'avais zappé ton précédent post (en plus j'ai éhontément répondu ce que je pensais sans me documenter, je finis un bilan là alors j'en ai plein le c...)   :Embarassed:  Attention j'ai pas dit l'utilisateur averti utilises XFS, j'ai dit l'utilisateur averti qui utilises XFS sait que mkfs.xfs est un dummy et que la vérification d'intégrité du file system se fait au mount.   :Wink: 

----------

## truc

iopiop, bon j'viens apporté quelques nouvelles... bon déjà autant le dire ça bouge pas mal en ce moment sur initng svn repository m'enfin...

Bon, je prends enfin le courage de rajouter de petits de ma composition qui pourront vous servir:)

Tout d'abord, je vous parlais plus haut d'un TIP pour me logger graphiquement et automatiquement que 

j'utilisais avec sysvinit, et j'aurai bien aimé en avoir un similaire pour initng. Et bien finalement voila ce que ça donne

```
#!/sbin/itype

# This is a i file, used by initng parsed by install_service

daemon daemon/xuser/gnome-settings-daemon {

    use = daemon/xuser;

    conflict = daemon/xuser/xfce-mcs-manager;

    env_file = /etc/conf.d/xuser;

    stderr = /dev/null;

    script daemon = /bin/su - ${X_USER} -l -c "DISPLAY=:${X_DISPLAY} /usr/libexec/gnome-settings-daemon";

}

daemon daemon/xuser/xfce-mcs-manager {

    need = system/bootmisc;

    use = daemon/xuser;

    conflict = daemon/xuser/gnome-settings-daemon;

    env_file = /etc/conf.d/xuser;

    stderr = /dev/null;

    script daemon = /bin/su - ${X_USER} -l -c "DISPLAY=:${X_DISPLAY} /usr/bin/xfce-mcs-manager";

}

daemon daemon/xuser {

    need = system/bootmisc;

    conflict = daemon/gdm daemon/kdm daemon/wdm daemon/xdm;

    use = system/modules system/coldplug system/faketty daemon/xfs;

    provide = virtual/dm;

    stdall = /dev/null;

    env_file = /etc/conf.d/xuser;

    also_stop = daemon/xuser/gnome-settings-daemon daemon/xuser/xfce-mcs-manager;

    script daemon = /bin/su - ${X_USER} -l -c "/usr/bin/startx -- :${X_DISPLAY} ${X_defaultservargs}";

}
```

Alors je ne sais pas si certains avait regardé le lien que j'avais donné pour le TIP, mais au final, ça ne ressemble plus vraiment, c'est plus simple:)

Bon, enfait ça remplace gdm/xdm/wdm/kdm et j'en passe, c'est pour lancé le bon vieux startx, c'est tout rien de plus, vous l'aurez sans doute remarqué ce script s'accompagne d'un fichier pour définir pour l'instant deux variables:

```
# Config file for /etc/initng/daemon/xuser

# type your username here

X_USER=truc

# Display number for the X server

X_DISPLAY=0 

# Default X server args

X_defaultservargs="-nolisten tcp -br"
```

après vous y mettez ce que vous voulez quoi...  :Smile: 

puis si vraiment ça vous interesse alors:

```
ng-update add daemon/xuser default
```

 pour lancer lancer l'ensemble à chaque démarrage.

Comme vous l'avez sans doute également remarqué il y a un peu plus qu'un simple startx dans xuser.i , en fait, pour a petite histoire, j'utilise fvwm et gnome-settings-daemon comme xsettings manager et donc pourquoi ne pas le lancer automatiquement aussi si vous l'utilisez!

Donc si vous l'avez:

```
ng-update add daemon/xuser/gnome-settings-daemon default
```

Et oui rien ne vous échappe, en théorie je devrai pouvoir faire pareil avec l'autre: xfce-mcs-manager cependant pour une raison encore inconnue(HELP!!  :Confused:  ),  je peux lancer xfce-mcs-manager depuis une session X mais le lancer depuis un tty me fait planter xorg, donc daemon/xuser/xfce-mcs-manager ne marche pas (encore)

Et enfin, j'ai en préparation à peu près la même chose mais pour XGL, donc si ça en interesse certains quand j'me remettrai à le faire, je le mettrai ici:)

Et pour finir, un autre petit ifiles qui pourrait éventuellemtn vous servir:

```
daemon daemon/urxvtd {

   need = system/bootmisc;

   env_file = /etc/conf.d/xuser;

   exec daemon = /bin/su - ${X_USER} -l -c /usr/bin/urxvtd;

   respawn;

   daemon_stops_badly;

}
```

qui vous lance un daemon urxvtd, qui n'est attaché à aucun display, cela peut à la fois être un avantage comme un inconvénient je sais à vous de voir.Last edited by truc on Thu Sep 21, 2006 10:27 pm; edited 2 times in total

----------

## yesi

salut,

 *Quote:*   

> daemon/urxvtd.i

 

juste par curiosité, quel est l'intérêt d'un daemon urxvtd ?

moi, je me content d'un screen et d'un urxvt...

bon, truc, tu m'as incité d'une certaine manière à mettre mon nez dans initng que je n'ai pas pas du tout suivi "la révolution"... :Smile: 

mon 1er consat, c'est que c'est très, très mais vraiment très rapide!!!

ça m'a agréablement surpris.

mais le seul hic, c'est que j'ai du mal à avoir ma connection internet wifi:

 *Quote:*   

> Sep 20 12:37:34 igloo ivman: Destruction du fichier de verrou /var/run/ivman.pid
> 
> Sep 20 12:37:34 igloo ivman: Impossible de détruire le fichier de verrou /var/run/ivman.pid!
> 
> Sep 20 12:38:44 igloo daemon/xfs: mkdir: ERROR: euid != 0,directory /tmp/.font-unix will not be created.
> ...

 

donc je suis repassé à sysvinit...

un lien pour le svn:

http://www.initng.org/wiki/Install_Gentoo

----------

## yesi

qu'est-ce c'est que:

conflict = daemon/toto

also_stop = daemon/toto2

?

pas trop compris ces mots clés?

----------

## truc

 *yesi wrote:*   

> salut,
> 
>  *Quote:*   daemon/urxvtd.i 
> 
> juste par curiosité, quel est l'intérêt d'un daemon urxvtd ?

 

ahah, oui, bon pour répondre franchement y'en a pas tant que ça. C'est juste que 

[*] ça fait bien

[*] d'après le man page ça permet une économie des ressources mémoires ( je sais maintenant c'est plus très important, mais bon..)

[*] Parce que, d'après le man page toujours, ça nous permet d'avoir un temps de chargement minime, et sachant que j'utilise des scripts avec rox pour pouvoir , afficher le contenu, extraire ou créer une archive, pour ouvrir un fichier etc.. directement dans in term, je n'aime pas que ça mette 3 plombes à se lancer, c'est pourquoi j'utilse le daemon, mais pour être honnète, on ne perçois presque pas la différence..  :Smile: 

 *Quote:*   

> qu'est-ce c'est que:
> 
> conflict = daemon/toto
> 
> also_stop = daemon/toto2
> ...

 

alors pour le premier c'est par exemple, imagine tu as sur ton système xdm, gdm (imagiiiinee), c'est deux programmes ont le même rôle et de par leur fonctionnement, ne peuvent fonctionner ensemble, alros pour éviter les que cela n'arrive tu peux préciser dans les  i-files avec quels autre(s) daemon il pourrait y avoir des problèmes.

Pour le deuxième, j'vais continuer sur un autre exemple, pour alsasound par exemple, tu as un service qui s'appelle (de mémoire) system/alsasound/mixerstate, qui enregistre les différents niveaux de volume quand tu coupe le son, et qui les remet comme ils étaient lorsque il a été éteint (le service).

Donc suppose maintenant que tu veuilles arreter le son ngc -d system/alsasound, le also_stop va également faire arreter le service system/alsasound/mixerstate, ce qui ba t'enregistrer l'états des mixers tout ça automatiquement:)

Bon maintenant, l'exemple est peut-être mal choisi( je me dis     ça en fait maintenant) mais bon le principe c'est ça, dis nous si c'estpas plus clair!

 *Quote:*   

> mais le seul hic, c'est que j'ai du mal à avoir ma connection internet wifi: 

 Ouais à ce que j'ai entendu dire le wifi c'est toujoursu peu délicat, mais si tu le fait fonctionner comme tu veux avec sysbinit, alors il n'y a pas de raison que ça ne marche pas avec initng! mais je ne m'y connais pas assez en wifi/linux pour pouvoir t'aider..

 *Quote:*   

> donc je suis repassé à sysvinit... 

 

QU'on se comprenne bien là, tu as juste rebooté avec sysvinit là? ut n'as rien désinstallé?! car il suffit de te faire deux entrée dans grub par exemple pour passer sur l'un ou sur l'autre, sans rien désinstaller, voila c'est dit, c'était principalement pour être sûr..

----------

## yesi

merci pour toutes tes explications, truc!

pour le wifi, je chercherai car vu le boost que fait initng, j'ai carrément envie de l'adopter.

 *Quote:*   

> QU'on se comprenne bien là, tu as juste rebooté avec sysvinit là? ut n'as rien désinstallé?! car il suffit de te faire deux entrée dans grub par exemple pour passer sur l'un ou sur l'autre, sans rien désinstaller, voila c'est dit, c'était principalement pour être sûr..

 

 :Smile:  bien sûr que non, je n'ai pas désinstallé la bête.

...Et oui, j'ai deux entrées sur mon grub pour sysvinit et pour initng, il faut bien que je teste, n'est-ce pas?  :Smile: 

----------

## freezby

Salut tout le monde,

Bon bah moi ca marche, j'ai meme réussi a faire marcher mon speedtouch donc chui content ^^

Par contre il me semble qu'il y a quelques erreurs au demarrage notamment concernant un certain fmon (juste après que le noyau ait chargé). le problème c'est que ca défile tellement vite que j'ai pas le tps de lire. 

J'arrive pas à trouver ces informes dans des logs. Donc si vous pouviez m'indiquer ou c'est qu'on peut obtenir les messages qui s'affiche durant le démarrage. (j'utilise syslog-ng, au cas ou)

Bye

----------

## truc

je ne sais plus exactement ce que c'est, mais pout utiliser le plugin fmon, il faut activer quelque chose dans le noyau, pour ma part, n'en voyant pas l'intérêt (par manque de connaissance?) j'ai simplement désactiver le plugin, ou plutôt je ne l'ai pas activé, 

```
-initng_plugins_fmon
```

----------

