/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Javaprogram som service
Fra : Karl Erik Christense~


Dato : 01-06-11 21:00

På min kære Vortexbox har jeg installeret et Java-program, som er server
for min Kiss DP500 DVD - Open-DP500. Det leverer film og musik til Kiss'en.

Da Vortexbox ikke skal være tilsluttet hverken monitor eller tastatur,
er det altså nødvendigt, at Open-DP500 kører som en service.

Det har jeg fået det til (meget lærerigt).
Open-DP500 startes når maskinen booter, men kan også startes med
kommandoen: service kiss start.
Open-DP500 stoppes med <ctrl>c, så derfor har jeg ikke (endnu) en:
service kiss stop (og service kiss restart, men det er også lige meget).

Så kommer spørgsmålet

Hvordan kan jeg lægge <ctrl>c ind i scriptet, som en stop-funktion?

Jeg kender godt syntaksen for stop-funktionen, men ikke hvordan jeg
giver kommandoen <ctrl>c - eller om det er den rigtige måde at stoppe et
Java-program på? - men det virker

Kan nogen hjælpe?

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://ranunkelvej.com/b&o/ - Reparation af B&O Red Line højttalere
http://webdesign.ranunkelvej.com - Artikler om webdesign

 
 
Søren A Christensen (01-06-2011)
Kommentar
Fra : Søren A Christensen


Dato : 01-06-11 22:16

On 2011-06-01 22:00, Karl Erik Christensen wrote:
> På min kære Vortexbox har jeg installeret et Java-program, som er server
> for min Kiss DP500 DVD - Open-DP500. Det leverer film og musik til Kiss'en.
>
> Da Vortexbox ikke skal være tilsluttet hverken monitor eller tastatur,
> er det altså nødvendigt, at Open-DP500 kører som en service.
>
> Det har jeg fået det til (meget lærerigt).
> Open-DP500 startes når maskinen booter, men kan også startes med
> kommandoen: service kiss start.
> Open-DP500 stoppes med <ctrl>c, så derfor har jeg ikke (endnu) en:
> service kiss stop (og service kiss restart, men det er også lige meget).
>
> Så kommer spørgsmålet
>
> Hvordan kan jeg lægge <ctrl>c ind i scriptet, som en stop-funktion?
>
> Jeg kender godt syntaksen for stop-funktionen, men ikke hvordan jeg
> giver kommandoen <ctrl>c - eller om det er den rigtige måde at stoppe et
> Java-program på? - men det virker
>
> Kan nogen hjælpe?
>
> Karl Erik.
>

kill -INT <pid_of_process>

kill sender "signaler" til processer og kill -INT svarer kil ctrl-c

/Søren

Karl Erik Christense~ (01-06-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 01-06-11 22:27

On 01-06-2011 23:16, Søren A Christensen wrote:
> On 2011-06-01 22:00, Karl Erik Christensen wrote:
>> På min kære Vortexbox har jeg installeret et Java-program, som er server
>> for min Kiss DP500 DVD - Open-DP500. Det leverer film og musik til
>> Kiss'en.
>>
>> Da Vortexbox ikke skal være tilsluttet hverken monitor eller tastatur,
>> er det altså nødvendigt, at Open-DP500 kører som en service.
>>
>> Det har jeg fået det til (meget lærerigt).
>> Open-DP500 startes når maskinen booter, men kan også startes med
>> kommandoen: service kiss start.
>> Open-DP500 stoppes med <ctrl>c, så derfor har jeg ikke (endnu) en:
>> service kiss stop (og service kiss restart, men det er også lige meget).
>>
>> Så kommer spørgsmålet
>>
>> Hvordan kan jeg lægge <ctrl>c ind i scriptet, som en stop-funktion?
>>
>> Jeg kender godt syntaksen for stop-funktionen, men ikke hvordan jeg
>> giver kommandoen <ctrl>c - eller om det er den rigtige måde at stoppe et
>> Java-program på? - men det virker
>>
>> Kan nogen hjælpe?
>>
>> Karl Erik.
>>
>
> kill -INT <pid_of_process>
>
> kill sender "signaler" til processer og kill -INT svarer kil ctrl-c
>
> /Søren

Tak Søren, men vil samme process altid få samme pid?
Eller er det nok at sende kill -int?

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://ranunkelvej.com/b&o/ - Reparation af B&O Red Line højttalere
http://webdesign.ranunkelvej.com - Artikler om webdesign

Søren A Christensen (02-06-2011)
Kommentar
Fra : Søren A Christensen


Dato : 02-06-11 03:28

On 2011-06-01 23:27, Karl Erik Christensen wrote:
> On 01-06-2011 23:16, Søren A Christensen wrote:
>> On 2011-06-01 22:00, Karl Erik Christensen wrote:
>>> På min kære Vortexbox har jeg installeret et Java-program, som er server
>>> for min Kiss DP500 DVD - Open-DP500. Det leverer film og musik til
>>> Kiss'en.
>>>
>>> Da Vortexbox ikke skal være tilsluttet hverken monitor eller tastatur,
>>> er det altså nødvendigt, at Open-DP500 kører som en service.
>>>
>>> Det har jeg fået det til (meget lærerigt).
>>> Open-DP500 startes når maskinen booter, men kan også startes med
>>> kommandoen: service kiss start.
>>> Open-DP500 stoppes med <ctrl>c, så derfor har jeg ikke (endnu) en:
>>> service kiss stop (og service kiss restart, men det er også lige meget).
>>>
>>> Så kommer spørgsmålet
>>>
>>> Hvordan kan jeg lægge <ctrl>c ind i scriptet, som en stop-funktion?
>>>
>>> Jeg kender godt syntaksen for stop-funktionen, men ikke hvordan jeg
>>> giver kommandoen <ctrl>c - eller om det er den rigtige måde at stoppe et
>>> Java-program på? - men det virker
>>>
>>> Kan nogen hjælpe?
>>>
>>> Karl Erik.
>>>
>>
>> kill -INT <pid_of_process>
>>
>> kill sender "signaler" til processer og kill -INT svarer kil ctrl-c
>>
>> /Søren
>
> Tak Søren, men vil samme process altid få samme pid?
> Eller er det nok at sende kill -int?
>
> Karl Erik.
>
Nej, hver gang du starter et program, får processen et nyt pid.
Under forudsætning af at der kun kører en process med samme navn, kan du
f.eks. gøre følgende:

kill -INT `pgrep proc-navn`

eller

pkill -INT proc-navn

Alternativt, hvis dit program gemmer sit pid-nummer i
/var/run/mitprg.pid:

kill -INT `cat /var/run/mitprg.pid`

Der er mange måder at gøre det på, se

man pgrep
man pkill

hvordan dit program evt. kan gemme sit pid-nummer må du selv prøve at
finde ud af.

/Søren

Henrik Christian Gro~ (02-06-2011)
Kommentar
Fra : Henrik Christian Gro~


Dato : 02-06-11 10:01

Søren A Christensen <sac@post3.tele.dk> writes:

> Nej, hver gang du starter et program, får processen et nyt pid.

Men ved boot (og når man når max) begynder kernen forfra i sekvensen, så
init har (pr. definition) altid pid 1
En naturlig konsekvens er at alle de andre ting man starter ved boot normalt
får en af meget få pid'er (i dag har næsten alle maskiner flere
processrkerner, og derfor kan flere ting starte op parallelt, og
nogengange kan der sikkert ske noget der får nogle processer til at
overhale andre), det er dog ikke værd at regne med.

> Alternativt, hvis dit program gemmer sit pid-nummer i
> /var/run/mitprg.pid:

Og det burde enhver god daemon gøre.

> kill -INT `cat /var/run/mitprg.pid`

..Henrik

--
.... applications which need to address vast amounts of memory
(e.g., big scientific crankers, large databases, emacs) ...
-- fra en artikel i LWN

Karl Erik Christense~ (02-06-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 02-06-11 21:17

On 01-06-2011 22:00, Karl Erik Christensen wrote:
> På min kære Vortexbox har jeg installeret et Java-program, som er server
> for min Kiss DP500 DVD - Open-DP500. Det leverer film og musik til Kiss'en.
>
> Da Vortexbox ikke skal være tilsluttet hverken monitor eller tastatur,
> er det altså nødvendigt, at Open-DP500 kører som en service.
>
> Det har jeg fået det til (meget lærerigt).
> Open-DP500 startes når maskinen booter, men kan også startes med
> kommandoen: service kiss start.
> Open-DP500 stoppes med <ctrl>c, så derfor har jeg ikke (endnu) en:
> service kiss stop (og service kiss restart, men det er også lige meget).
>
> Så kommer spørgsmålet
>
> Hvordan kan jeg lægge <ctrl>c ind i scriptet, som en stop-funktion?
>
> Jeg kender godt syntaksen for stop-funktionen, men ikke hvordan jeg
> giver kommandoen <ctrl>c - eller om det er den rigtige måde at stoppe et
> Java-program på? - men det virker
>
> Kan nogen hjælpe?
>
> Karl Erik.
>

Tak til alle som forsøger at hjælpe, men jeg kan sgu ikke rigtig få
noget af det til at fungere.

Jeg har et script som hedder "startkiss" og ser således ud:

#/bin/bash
cd /usr/local/kiss/bin
java -jar open-dp500.jar open-dp500.conf

Det er vel selvforklarende?

--------------

Derefter har jeg et andet script - "kiss":
#! /bin/sh
# chkconfig: 345 70 35
# scriptet ligger i /etc/rc.d/init.d/kiss
USER=
# PATH TIL OPEN-DP500.jar (startkiss)
export KISSHOME=/etc/rc.d/init.d
case $1 in
start)
#su – $USER -c $KISSHOME"KissServer start & > /dev/null"
$KISSHOME/startkiss &
echo "Running KISS Server"
exit
;;
stop)
#su – $USER -c $KISSHOME"KissServer stop & > /dev/null"
$KISSHOME/kill ?? _HVAD STÅR DER SÅ HER_ ?? &
echo "Stopped KISS Server"
exit
;;
*)
echo "Usage: /etc/rc.d/init.d/kiss { start | stop }"
exit
;;

----------------

Begge scripts ligger i /etc/rc.d/init.d

Tilføjes som en service med:
chkconfig --add kiss

Som skrevet tidligere starter programmet fint ved boot, og starter også
fint ved "service kiss start", men hvordan hulen stopper jeg det med
"service kiss stop"?

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://ranunkelvej.com/b&o/ - Reparation af B&O Red Line højttalere
http://webdesign.ranunkelvej.com - Artikler om webdesign

Cykelsmeden (05-06-2011)
Kommentar
Fra : Cykelsmeden


Dato : 05-06-11 10:53

Den 02-06-2011 22:17, Karl Erik Christensen skrev:
> echo "Usage: /etc/rc.d/init.d/kiss { start | stop }"
> exit
> ;;
>
> ----------------
>
> Begge scripts ligger i /etc/rc.d/init.d
>
> Tilføjes som en service med:
> chkconfig --add kiss
>
> Som skrevet tidligere starter programmet fint ved boot, og starter også
> fint ved "service kiss start", men hvordan hulen stopper jeg det med
> "service kiss stop"?

Jeg har ikke tænkt dybt over dit problem, men er det ikke bare
/etc/rc.d/init.d/kiss stop ??

/finn

Karl Erik Christense~ (05-06-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 05-06-11 11:40

On 05-06-2011 11:52, Cykelsmeden wrote:

> Jeg har ikke tænkt dybt over dit problem, men er det ikke bare

Her kunne jeg godt komme med en meget flabet kommentar, men det undlader
jeg

> /etc/rc.d/init.d/kiss stop ??
>
> /finn

Jamen det er jo netop stopkommandoen jeg efterlyser hjælp til. Det
hjælper jo ikke meget bare at skrive stop, når scriptet ikke har nogen
stop direktiver.

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://ranunkelvej.com/b&o/ - Reparation af B&O Red Line højttalere
http://webdesign.ranunkelvej.com - Artikler om webdesign

Cykelsmeden (05-06-2011)
Kommentar
Fra : Cykelsmeden


Dato : 05-06-11 12:08

Den 05-06-2011 12:40, Karl Erik Christensen skrev:
>
> Jamen det er jo netop stopkommandoen jeg efterlyser hjælp til. Det
> hjælper jo ikke meget bare at skrive stop, når scriptet ikke har nogen
> stop direktiver.
>
> Karl Erik.
Ok, jeg syntes nok det så for let ud
usage-statementet var altså forud for sin tid.

//finn

Cykelsmeden (05-06-2011)
Kommentar
Fra : Cykelsmeden


Dato : 05-06-11 12:19

Den 05-06-2011 12:40, Karl Erik Christensen skrev:
> Jamen det er jo netop stopkommandoen jeg efterlyser hjælp til. Det
> hjælper jo ikke meget bare at skrive stop, når scriptet ikke har nogen
> stop direktiver.

Nu er det godt nok java (som jeg ikke kender til) du efterlyser, men
måske du kan bruge denne artikel med et veldokumenteret bash-script?
http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with-init-scripts

//finn

Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407858
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste