# [boot] creation script pour service (rÃ©solut)

## alpha_one_x86

C'est surment une erreur de dï¿½butant car j'ai pas l'habitude de faire de srcipt pour service

/mnt/servstock/l2_serv/login/startLoginServer.sh:

```
#!/bin/bash

cd /mnt/servstock/l2_serv/login/

start-stop-daemon --start --quiet --pidfile /var/run/loginl2.pid --startas 'nice -n 5 java -Xms512m -Xmx512m -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer' &
```

/etc/init.d/l2j_login:

```
#!/sbin/runscript

# Copyright (c) 2007 l2j login alpha.super-one@laposte.net

depend() {

        use logger dns

        need net

}

start() {

        ebegin "Starting Login L2"

        /mnt/servstock/l2_serv/login/startLoginServer.sh

        eend $?

}

stop() {

        ebegin "Stopping Login L2"

        start-stop-daemon --stop --quiet --pidfile /var/run/loginl2.pid

        eend $?

}

```

et ca marche pas dans le script, car si j'eleve les guillement il me dit que l'option X pour start-stop-daemon n'exite pas, mais cette option doit etre aplliquer a java...

Qui peu me debloquer?Last edited by alpha_one_x86 on Mon Jan 01, 2007 4:54 pm; edited 5 times in total

----------

## alpha_one_x86

il faut arriver a lancer la commande tout en veroillant le pid tout en ne bloquand pas le script

----------

## Enlight

A première vue, je pense que le "&" est mal placé et détache start-stop-daemon, j'utiliserais plutôt l'option -b.

----------

## alpha_one_x86

```
toc ~ # start-stop-daemon -b --start --quiet --pidfile /var/run/loginl2.pid --startas nice -n 5 java -Xms512m -Xmx512m -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer

start-stop-daemon: invalid option -- X

Try `start-stop-daemon --help' for more information.

toc ~ #

```

Marche pas l'option -b.

----------

## Temet

Un truc un peu loufoque ...

Je tenterais, juste pour voir, de mettre la commande qui tue dans un script... et je pense que start-stop-daemon ne verra plus le -X.

Tente toujours  :Wink: 

(désolé si je dis une connerie ... de plus)

EDIT : Commande qui tue : 

```
nice -n 5 java -Xms512m -Xmx512m -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer
```

----------

## alpha_one_x86

ca marche pas dans un script.

----------

## Enlight

Nan mais à mon avis faut quoter de nice à la fin de la commande. D'ailleurs non tu dois pas utiliser nice dans la commande, mais l'option correspondante de start-stop-daemon.

edit : et non la solution magique n'est pas de mettre des quotes en plus... elle estd ans les 5 premières lignes du man...

----------

## alpha_one_x86

Je suis pas ou tu vois ça:

```
START-STOP-DAEMON(8)                                                                 Debian GNU/Linux                                                                 START-STOP-DAEMON(8)

NAME

       start-stop-daemon - start and stop system daemon programs

SYNOPSIS

       start-stop-daemon -S|--start options [--] arguments

       start-stop-daemon -K|--stop options

       start-stop-daemon -H|--help

       start-stop-daemon -V|--version

DESCRIPTION

       start-stop-daemon  is  used  to  control the creation and termination of system-level processes.  Using the --exec, --pidfile, --user, and --name options, start-stop-daemon can be

       configured to find existing instances of a running process.

       With --start, start-stop-daemon checks for the existence of a specified process.  If such a process exists, start-stop-daemon does nothing, and exits with error  status  1  (0  if

       --oknodo is specified).  If such a process does not exist, it starts an instance, using either the executable specified by --exec, (or, if specified, by --startas).  Any arguments

       given after -- on the command line are passed unmodified to the program being started.  If --retry is specified then start-stop-daemon will check that the process(es) have  termi-

       nated.

       With  --stop,  start-stop-daemon  also checks for the existence of a specified process.  If such a process exists, start-stop-daemon sends it the signal specified by --signal, and

       exits with error status 0.  If such a process does not exist, start-stop-daemon exits with error status 1 (0 if --oknodo is specified).

```

EDIT: je suis encore passer plein de fois a coter, j'ai je pense compris mon erreur:

```
start-stop-daemon -b --start --quiet --pidfile /var/run/loginl2.pid --startas /mnt/servstock/l2_serv/login/ -x java -Xms512m -Xmx512m -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer
```

Ca devrai marcher mais ça marche toujours pas... je re lit le man....Last edited by alpha_one_x86 on Sat Dec 30, 2006 11:43 pm; edited 1 time in total

----------

## Enlight

Là?

 *alpha_one_x86 wrote:*   

> Je suis pas ou tu vois ça:
> 
>  *Quote:*   START-STOP-DAEMON(                                                                 Debian GNU/Linux                                                                 START-STOP-DAEMON(
> 
> NAME
> ...

 

----------

## alpha_one_x86

En fr ça donne?

Eureka, j'ai peu etre trouver.... Non:

```
toc ~ # /etc/init.d/l2j_login start

 * Caching service dependencies ...                                                                                                                                                                      [ ok ]

 * Starting Login L2 ...                                                                                                                                                                                 [ !! ]

toc ~ #    
```

/etc/init.d/l2j_login:

```
#!/sbin/runscript

# Copyright (c) 2007 l2j login alpha.super-one@laposte.net

depend() {

        use logger dns

        need net

}

start() {

        ebegin "Starting Login L2"

        start-stop-daemon -b -N 5 --start --quiet --pidfile /var/run/loginl2.pid --startas /mnt/servstock/l2_serv/login/ -x /mnt/servstock/l2_serv/login/startLoginServer.sh

        eend $?

}

stop() {

        ebegin "Stopping Login L2"

        start-stop-daemon --stop --quiet --pidfile /var/run/loginl2.pid

        eend $?

}

```

/mnt/servstock/l2_serv/login/startLoginServer.sh:

```
#!/bin/bash

cd /mnt/servstock/l2_serv/login/

java -Xms128m -Xmx512m -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer
```

Last edited by alpha_one_x86 on Sat Dec 30, 2006 11:54 pm; edited 1 time in total

----------

## geekounet

Bon, je ne voulais pas te répondre parce que la solution est trouvable par une simple lecture du man et que je ne veux pas faire d'effort à aider qq'un qui n'en fait pas un minimum dans ses recherches, mais bon c'est plus fort que moi, j'ai la réponse depuis que j'ai lu le topic en début d'aprem et faut que je donne la solution sinon je vais mal dormir si je laisse des erreurs comme ça ...

Alors déjà, ça sert à rien d'appeller un script externe pour juste un "cd + start-stop-daemon", ensuite le nice ça se donne en paramètre à start-stop-daemon avec --nice-level (ou -N), et enfin le paramètre à donner à --startas est seulement l'executable à lancer et ses arguments sont placés après les -- en fin de ligne.

Et il me semble bien que comme pour les ebuilds, tu n'as pas le droit de poser un copyright sur un script d'init gentoo, ça reste la propriété de gentoo (ça fait polémique pour les ebuilds cette histoire).

Et tout ceci donne celà :

```
#!/sbin/runscript

depend() {

        use logger dns

        need net

}

start() {

        ebegin "Starting Login L2"

        cd /mnt/servstock/l2_serv/login/

        start-stop-daemon --start --quiet --pidfile /var/run/loginl2.pid --nice-level 5 --startas java -- -Xms512m -Xmx512m \

          -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer

        eend $?

}

stop() {

        ebegin "Stopping Login L2"

        start-stop-daemon --stop --quiet --pidfile /var/run/loginl2.pid

        eend $?

}

```

Et la prochaine fois : LIS 10 FOIS LE MAN EN ENTIER AVANT DE POSER UNE QUESTION Je veux bien être sympa mais ya des limites  :Evil or Very Mad: 

EDIT : pour le copyright, c'est bien ça parce que le script d'init est exécuté par runscript (pour un source, ce qui revient à l'y inclure) qui appartient à Gentoo, donc le script d'init reste sous copyright Gentoo

----------

## alpha_one_x86

Avec ton post(merci j'ai fait des effort mes j('**'ai pas compris le man):

```
toc ~ # /etc/init.d/l2j_login start

 * Caching service dependencies ...                                                                                                                                                                      [ ok ]

 * Starting Login L2 ...

/sbin/start-stop-daemon: unrecognized option `--nice-level'

Try `/sbin/start-stop-daemon --help' for more information.                                                                                                                                               [ !! ]

toc ~ # nano /etc/init.d/l2j_login

toc ~ # /etc/init.d/l2j_login start

 * Caching service dependencies ...                                                                                                                                                                      [ ok ]

 * Starting Login L2 ...

/sbin/start-stop-daemon: Unable to start java: No such file or directory (No such file or directory)                                                                                                     [ !! ]

toc ~ #      
```

----------

## geekounet

J'ai fais 2-3 fautes de syntaxe et t'es pas capable de les corriger en vérifiant dans le man ??

EDIT: remplace le --startas par --exec, ça devrait mieux marcherLast edited by geekounet on Sun Dec 31, 2006 12:06 am; edited 1 time in total

----------

## Enlight

Mais bon sang lis ce foutu man, tu verras qu'il a fait une miniscule faute en en mettant nice-level au lieu de nicelevel... et maintenant qu'on t'as maché le script et qu'on doit te faire le débuggage en plus, tu me vires ce copyright stp!

----------

## alpha_one_x86

copyrith virer depuis qu'on me l'a dit, mais j'ai vu quelqu'un (no-ip) qui a mit un copy rith donc j'ai fait pareil...

J'ai lu ce man, voir script + haut, moi aussi j'ai fait quel petite faute...

----------

## alpha_one_x86

```
#!/sbin/runscript

depend() {

        use logger dns

        need net

}

start() {

        ebegin "Starting Login L2"

        start-stop-daemon --start --quiet --pidfile /var/run/loginl2.pid -N 5 -a /mnt/servstock/l2_serv/login/ --exec java -- -Xms32m -Xmx128m \

          -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer

        eend $?

}

stop() {

        ebegin "Stopping Login L2"

        start-stop-daemon --stop --quiet --pidfile /var/run/loginl2.pid

        eend $?

}

```

Mais voila c'est normal qu'il marche pas, car le binaire java n'y est pas, et si je change le pach c'est les fichier du serveur qui y sont pas...

----------

## Tuxicomane

pach c'est pour path ?   :Confused: 

----------

## alpha_one_x86

oui, j'ai meme tester:

start-stop-daemon -u root --start --quiet --pidfile /var/run/loginl2.pid -N 5 -a /usr/bin/ --exec java -- -Xms32m -Xmx128m \

          -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer

----------

## alpha_one_x86

```

#!/sbin/runscript

depend() {

        use logger dns

        need net

}

start() {

        ebegin "Starting Login L2"

        cd /mnt/servstock/l2_serv/login/

        start-stop-daemon -b --chdir /mnt/servstock/l2_serv/login/ --start --quiet --pidfile /var/run/loginl2.pid -N 5 --exec /usr/bin/java -- -Xms32m -Xmx128m \

          -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer

        eend $?

}

stop() {

        ebegin "Stopping Login L2"

        start-stop-daemon --stop --quiet --pidfile /var/run/loginl2.pid

        eend $?

}

```

----------

## alpha_one_x86

Mon probleme vien d'ici:

```
start-stop-daemon -b --chdir /mnt/servstock/l2_serv/login/ --start --quiet --pidfile /var/run/loginl2.pid -N 5 --exec /usr/bin/java -- -Xms32m -Xmx128m \

-cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer
```

Le fichier n'est pas creer:

/var/run/loginl2.pid

donc ca bug pour l'arret

----------

## dapsaille

Salut à toi ..

 Peux tu enlever le non-résolu de ton titre svp 

Ce matin je me sens l'humeur modératrive ... bon ok je sors   :Rolling Eyes: 

 Ceci dit je n'ais pas suivi tout le thread (je viens de me lever et suis plutot du genre à poil et la tete dans le ....)

mais si c'est un lock qui t'empêche de démarrer/arrêter un script perso .. bah crée le dans ce cas :p

----------

## alpha_one_x86

Il doit etre genere en auto, et c'est pas fait donc l'id de mon processue n'est pas enregistrer, et il me faut cette id et par une id au hazard.

----------

## titoucha

Comme le dit si bien @dapsaille, il faut que tu enlèves le non-résolu de ton titre.

----------

## alpha_one_x86

ok, personne ne peu m'aider pour le pid?Last edited by alpha_one_x86 on Mon Jan 01, 2007 2:56 pm; edited 1 time in total

----------

## Enlight

Qu'est ce que ça peut me saouler ce genre de reflexion, je crois qu'on t'aide pas mal, après on est pas devant ta machine, et on est pas béta-testeurs de tous les trucs que tu voudrait pouvoir installer sur ta machine!

Par contre je crois que si t'avais un peu de bon sens, tu commencerais par virer le quiet voir si tu reçois un message qui nous éclaire un peu plus au moins... parceque là, mon fichier est pas crée... à part "c'est moche!" tu veux qu'on te dise quoi????

D'ailleurs j'osais pas poser la question mais tant qu'on y'est, tu le lance avec quel utilisateur ton script?

edit : Et quand on te dit de pas mettre (non résolu) e que tu devrais savoir après quelques mois passés ici, ça veut pas dire que tu dopis mettre (résolu)

----------

## Enlight

Bon j'ai encore passé du temps dans le man à ta place, a priori l'option pidfile ne sert qu'à vérifier le fichier, si tu veux le créer il faut utiliser en plus --make-pidfile. Purée ça me tue comme t'as de nouveau pas cherché ni essayé.

----------

## YetiBarBar

[COUP DE GUEULE] (et désolé pour le pourrissage de topic)

 *alpha_one_x86 wrote:*   

> En fr ça donne? 

 

 *alpha_one_x86 wrote:*   

> ok vu que personne ne peu m'aider pour le pid...

 

 *alpha_one_x86 wrote:*   

> Avec ton post(merci j'ai fait des effort mes j('**'ai pas compris le man): 

 

Le genre de reflexion qui me gonfle après plus de 400 messages du style "je sais pas me servir de man et il FAUT m'aider", tu te permets des reflexions que je trouve déplacer ...

Il y a très certainement beaucoup de gens ici qui ont les compétences pour t'aider, mais vu la forme de tes messages, ton orthographe, etc ..., ça donne vraiment pas envie de t'aider !!

Je t'avouerais que personnellement, j'ai pris le parti d'éviter de lire tes topics et je pense que je ne suis pas le seul. La commauté gentoo est certes là pour t'aider mais elle ne peut pas faire à ta place les efforts d'investissements qu'elle nécessite.

[/FIN DU COUP DE GUEULE]

PS : Fait un effort pour relire tes posts un minimum (et il n'y a pas de t à resolu !!)

PS2: L'idée de mettre un copyright perso sur un script que les autres on écrit, ....

----------

## alpha_one_x86

Dsl pour mon aggressiviter mais ce probleme m'enerver, car mon pc de bureau a de + grave probleme (grosse instabiliter sous tout les OS, pour ceux qui parle de mes overclockage, ça a rien a voir car j'ai jamais overclocker mon pc de bureau, seul mon serveur l'a ete pendant un moment. Donc le probleme matériel m'enerve, un coup les log me disse que c'est l'un de mes diskdur, un coup erreur inconu, )

Je suis vraiment désoler d'etre a cran, mais vu que je m'éparpiller sur mes problemes (et oui encore), j'avancer pas eet je comprennez rien. Mais vu que mon serveur marche, c'est le principal, pour les probleme avec mon pc de bureau je veux les résoudre seul et sans aide.

----------

## Tuxicomane

 :Very Happy:  T'as pris des bonnes résolutions !

----------

## alpha_one_x86

Non c'est simplement qu'il faut pas que mon serveur soit offline, il faut qu'il marche toujours et correctement, et vu que je peu travailler sur mon pc portable pendant que je répare mon pc de bureau, ... Sur mon serveur j'ai plus que des problemes de tentative de piratage (et oui je regarde souvent mes log)

----------

## Tuxicomane

Dans ce cas (c'est juste une idée comme ça hein...) tu peux pas mettre une distrib' "plus facile" où tu comprendras plus facilement tes problèmes ?

----------

## alpha_one_x86

Dans une distib + facile il n'y a pas de probleme, mais j'apprend rien, je peu rien controller, ... peu etre pour mon pc de bureau, mais pas pour mon serveur. Dsl.

----------

## Enlight

Je suis pas du tout d'accord avec ton raisonnement pour plusieurs raisons :

1) même sur une mandriva tu pourras toujours installer un truc à la mano en compilant.

2) les outils censés "simplifier la vie de l'utilisateur" ne sont que des front-end, il ne font pas disparaitre les possibilités de configuration manuelle, ce qui te permets de reporter une difficulté à plus tard. Par exemple tu peux très bien vivre 6 mois avce kwifimanager, puis un jour ouvrir ton term et commencer à regarder comment marchent iwconfig, ifconfig, route etr consors.

3) Un système qui doit être up 24/24 doit être un système que tu maitrises! A partir de là, rien ne t'empeche de mettre une debian ou que sais-je comme serveur de production tout en jouant avec gentoo ou LFS soit sur un autre PC, soit dans un chroot, voir même via xen où que sais-je.

4) Péter son système est la meilleure manière de comprendre : j'y ai pas mal cru, et malheuresement beaucoup de monde y croit encore. Perso je pense qu'il vaut mieux avant de partir en guerre être un minimum préparé, lire sur un peu tout les outils que tu connais, et voir comment ils peuvent te servir le jour ou tu as un souci. Apprendre bash, est surement un des premiers reflexes à avoir, l'advanced bash scripting guide est une perl pour ça (je te laisse googler) bien sur on ne demande pas de connaitre le truc sur le bout des doigts, mais plus tu connaitra de langages, mieux ce sera (même si ce n'est qu'un tout petit peu).

Et si tu veux des cas pratiques de résolution de problèmes, les gens qui pètent leir machine, ça manque pas ici  :Wink:  tu peux toujours observer comment les autres forumeurs approchent les problèmes et essayer de proposer tes solutions.

5) Bref voilà te mets pas la pression inutilement, c'est le meilleur moyen de tout lacher en cours de route. Sur ce je salue ta résolution.

NB : tu as testé ce que je disais dans mon précédent post?

----------

## guilc

 *Enlight wrote:*   

> l'advanced bash scripting guide est une perl pour ça

 

MOUAHAHAHAH   :Laughing:   :Laughing: 

Un lapsus ?  :Smile: 

Pardon, mais c'est facile  :Smile: 

----------

## Enlight

 *guilc wrote:*   

>  *Enlight wrote:*   l'advanced bash scripting guide est une perl pour ça 
> 
> MOUAHAHAHAH   
> 
> Un lapsus ? 
> ...

 

Mouarf surement ^^ j'avais pas vu, bon au moins j'ai effacé le plus gros lapsus que j'avais fait avant que personne ne le remarque  :Mr. Green: 

----------

## alpha_one_x86

```
#!/sbin/runscript

depend() {

        use logger dns

        need net

}

start() {

        ebegin "Starting Login L2"

        cd /mnt/servstock/l2_serv/login/

        start-stop-daemon -b --chdir /mnt/servstock/l2_serv/login/ --start -m -p /var/run/loginl2.pid -N 5 --exec /usr/bin/java -- -Xms32m -Xmx128m \

          -cp javolution.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.loginserver.LoginServer

        eend $?

}

stop() {

        ebegin "Stopping Login L2"

        start-stop-daemon --stop --pidfile /var/run/loginl2.pid

        eend $?

}
```

Voila la solution. 

Voila pour mon script. 

Pour l'installabiliter, c'ete une barrette défectueuse.

----------

## Enlight

Et merci!!!?? jamais?

----------

## titoucha

@Enlight, je te sens un tantinet nerveux  :Mr. Green: 

----------

## Enlight

 *titoucha wrote:*   

> @Enlight, je te sens un tantinet nerveux 

 

Du tout!  :Twisted Evil: 

----------

## alpha_one_x86

Je vous remerci chaleureusement de votre aide si précieuse (dsl j'ai pas l'habitude de dire merci)

----------

## Scullder

 *alpha_one_x86 wrote:*   

> Je vous remerci chaleureusement de votre aide si précieuse (dsl j'ai pas l'habitude de dire merci)

 

Lawl, et on te jette pas des pierres dans la rue ?  :Shocked: 

----------

