[gentoo init.d] hoe /var/run/app.pid genereren?

Pagina: 1
Acties:

  • Arioch
  • Registratie: Maart 2002
  • Laatst online: 06-05 14:11
Hoi tweakers
Ik ben een init.d scriptje aan het maken voor Distributed.net.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
depend() {
  need net
}

start() {
  ebegin "Loading Distributed.net client"
  /opt/dnetc/dnetc -quiet
  eend $? "Failed to start Distributed.net client"
}

stop() {
  if [ -x /opt/dnetc/dnetc ] 
  then 
    ebegin "Turning off Distributed.net client"
    kill -9 $(ps aux | grep dnetc | awk '{printf $2}')
    eend $? "Failed to stop Distributed.net client"
  fi
}

maar
code:
1
ps aux | grep dnetc | awk '{printf $2}'
geeft echter 2 pid's naast elkaar. De output van deze regel is bijvoorbeeld '12348765', maar het kan ook '1238765' zijn :?
Heeft iemand een idee hoe ik dit kan oplossen? Het is waarschijnlijk heel simpel maar ik kan er niet opkomen |:(

edit:
Sommige apps hebben een .pid file in /var/run, maar in hun init script staat niet hoe ze dit genereren.

[ Voor 14% gewijzigd door Arioch op 19-01-2003 20:55 ]


  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
ps -A :? in plaats van ps -aux

of een killall dnetc ?

[ Voor 75% gewijzigd door AlterEgo op 19-01-2003 21:31 ]


  • Arioch
  • Registratie: Maart 2002
  • Laatst online: 06-05 14:11
-A geeft dezelfde output

edit: het is ondertussen opgelost door 'print' te gebruiken in plaats van 'printf' :?

[ Voor 66% gewijzigd door Arioch op 19-01-2003 21:34 ]


  • MikeN
  • Registratie: April 2001
  • Laatst online: 13-05 14:50
Dit komt doordat de "grep dnetc" in het lijstje voorkomt.
Je zou grep -v grep in de pipe erbij kunnen gooien. (OID)

  • Arioch
  • Registratie: Maart 2002
  • Laatst online: 06-05 14:11
thx nu snap ik hoe het komt :>

Verwijderd

Tjah, als ik eerlijk ben had je dit zelf ook wel kunnen bedenken door het awk deel weg te laten en dan te bekijken wat de output was.
Pagina: 1