Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Služby pod init.d  (Přečteno 3360 krát)

JanaV

  • Návštěvník
  • Příspěvků: 33
Služby pod init.d
« kdy: 08 Dubna 2016, 16:19:05 »
Ahoj,

snažim se vytvořit linuxovou službu pod init.d/ , ale mám nějaký problém se syntaxí. Pomocí jednoho příkazu co jsem našla v jedné diskuzi jsem ji otestovala, a nelíbí se tomu následující řádky, které jsem zkopírovala z jiných služeb, a u nich to nepředstavuje žádný problém, ale u mě to nefunguje. Dokonce když jsem ji tam měla nakopírovanou, tak to zablokovalo mountování disků.

# Default-Start:     2 3 4 5
# Default-Stop:     

Netušíte jestli to nevyžaduje té službě přidělit nějaké právo aby fungovala ?

Díky

Jana V.
« Poslední změna: 11 Dubna 2016, 09:48:43 od JanaV »
Jana

jmp

  • Host
Re:Služby pod init.d
« Odpověď #1 kdy: 08 Dubna 2016, 16:56:59 »
ono je více způsobů, jak zacházat se službama na linuxu (init systému)

dříve se používal system V (mrkněte na man update-rc.d - snad by to ještě mělo fungovat)

pak se v ubuntu objevil upstart (o ovládání/nastavování nevím nic)

jinde se prosazuje systemd

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Služby pod init.d
« Odpověď #2 kdy: 08 Dubna 2016, 17:18:03 »
ukaz nam prosim ten skript celej ...
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #3 kdy: 11 Dubna 2016, 09:45:40 »
#!/bin/sh
### BEGIN INIT INFO
# Provides:          core-mono
# Required-Start:   
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:     
# Description:       Kernel Cluster
### END INIT INFO

mono /home/jana/Plocha/core-mono/RTKernel.exe
Jana

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Služby pod init.d
« Odpověď #4 kdy: 11 Dubna 2016, 11:07:29 »
#!/bin/sh
### BEGIN INIT INFO
# Provides:          core-mono
# Required-Start:   
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:     
# Description:       Kernel Cluster
### END INIT INFO

mono /home/jana/Plocha/core-mono/RTKernel.exe

to je opravdu parodie ... to nemuze fungovat ani teoreticky !!!!!

zeptam se (spis filosoficky):

1) vis co to je init skript ?
2) obtezovala jsi se podivat na jakykoliv jiny init skript (trebas pro inspiraci - zjevne ano, soude dle hlavicky) ?
3) V tom pripade se ptam (a neber si to osobne): jsi spise technicky antitalent na 101% a nebo jenom tedka predvadis az parodickou nekazen ?

Kdybych tam alespon videl pokus, tak se Ti budu snazit poradit dle sveho nejlepsiho vedomi a svedomi, ale nevidim tam ani "naznak" snahy (a bohuzel tam ani nevidim ani naznak premysleni), takze Ti to vyresit opravdu nemuzu,  (ledaze bych bych komplet celej init skript pro Tebe vytvoril - a to se skutecne nechystam ...)

zdravim, ntz
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #5 kdy: 11 Dubna 2016, 11:29:18 »
Zkopírovala jsem to z jiného skriptu a dosadila vlastní údaje.
Jana

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #6 kdy: 14 Dubna 2016, 09:59:46 »
Objevila jsem na jednom webu, že se ta služba musí povolit, a pak se přestanou zobrazovat ty chyby s Default-Start a Default-Stop.

Při povolování pomocí "sudo update-rc.d core-mono defaults" si vyžádalo změnu Default-Stop na "0 1 6", bez toho mi to nechtělo povolit.

Po povolení se ale u mě zobrazujou stále stejné hlášky, jako původně.
« Poslední změna: 14 Dubna 2016, 10:52:31 od JanaV »
Jana

Jakub Vaněk

  • Stálý člen
  • **
  • Příspěvků: 752
    • Web programátora a studenta Jakuba Vaňka
Re:Služby pod init.d
« Odpověď #7 kdy: 14 Dubna 2016, 16:51:03 »
Tam nejde o to, že by tam byla špatná hlavička, jde o to, že tam ani není bashovský switch/case, který by oddělil start od stopu.
Notebook: Lenovo Thinkpad X200, Xubuntu 16.04

Jakub Vaněk

  • Stálý člen
  • **
  • Příspěvků: 752
    • Web programátora a studenta Jakuba Vaňka
Notebook: Lenovo Thinkpad X200, Xubuntu 16.04

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #9 kdy: 15 Dubna 2016, 09:20:35 »
Nalezla jsem někde jednoduchý funkční skript, a ten jsem naimplementovala do té mé služby, takže zbytek za hlavičkou už mám v pořádku. Ale po použití příkazu na testování

sudo insserv core-mono

mi to stále zobrazuje tyto hlášky, i když po povolení služby by se měly podle jednoho webu ztratit

insserv: Default-Start undefined, assuming empty start runlevel(s) for script `friendly-recovery'
insserv: Default-Stop  undefined, assuming empty stop  runlevel(s) for script `friendly-recovery'

Podle mě by zbytek toho skriptu na to neměl mít vliv, ale jak říkám, mám to opravené.
« Poslední změna: 15 Dubna 2016, 10:31:41 od JanaV »
Jana

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #10 kdy: 15 Dubna 2016, 10:00:11 »
Přikládám kompletní opravený skript

#!/bin/sh
### BEGIN INIT INFO
# Provides:          core-mono
# Required-Start:   
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Kernel Cluster
### END INIT INFO

# path to app - zatim nepouzito
# APP_PATH=/home/jana/Plocha/core-mono

# script name
NAME=core-mono

# app name
DESC=RTKernel

# user
#RUN_AS=root # pouzito v jine, nefunkci, konstrukci u parametru za prikazem
RUN_AS=sudo # pokus, v nove konstrukci na to zapomneli, je tam jen promenna

case "$1" in

  start)
        echo "Starting $DESC"
        $RUN_AS mono /home/jana/Plocha/core-mono/RTKernel.exe &
        ;;
  stop)
        echo "Stopping $DESC"
        PID=`ps -ef | grep RTKernel.exe | grep -v grep | awk '{print $2}'`
        kil -9 $PID
        ;;

  restart|force-reload)
        echo "Restarting $DESC"
        PID=`ps -ef | grep RTKernel.exe | grep -v grep | awk '{print $2}'`
        kill -9 $PID
        sleep 15
        $RUN_AS mono /home/jana/Plocha/core-mono/RTKernel.exe &
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
exit 0
« Poslední změna: 15 Dubna 2016, 10:32:25 od JanaV »
Jana

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Služby pod init.d
« Odpověď #11 kdy: 15 Dubna 2016, 14:24:21 »
tohle uz vypada lip .... nicmene ta tvoje hlaska se zda byt o skriptu `friendly-recovery' a ne o tvem novem skriptu ... pokud je mezi init.d skripty nejaky jiny zlocinec, tak insserv to bude zminovat a pritom se to nemusi tykat aktualniho skriptu na kterem pracujes
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #12 kdy: 18 Dubna 2016, 08:16:00 »
Před těma chybama je ještě tento řádek. Z toho jsem usoudila, že se to týká té mé služby.

The script you are attempting to invoke has been converted to an Upstart
job, but lsb-header is not supported for Upstart jobs.

Takže by mi ta moje služba měla fungovat ?
« Poslední změna: 18 Dubna 2016, 08:20:19 od JanaV »
Jana

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #13 kdy: 18 Dubna 2016, 09:49:11 »
Otestovala jsem tu muji službu a skutečně funguje. Akorát se trochu divně chová, než bych čekala.

Kyž ji odstartuju
    sudo sh core-mono start

tak začne vypisovat různé hlášení do okna, a pokud ji chci zastavit, tak musím otevřít nové terminálové okno.
    sudo sh core-mono stop

Nedá se to nastavit, aby ty výpisy ze služby nezobrazoval, a mohla použít -start -stop -restart v jednom okně ?
Jana

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #14 kdy: 18 Dubna 2016, 10:02:57 »
Už jsem na to přišla, přesměrovala jsem si do >/dev/null  ty výpisy.
Jana

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Služby pod init.d
« Odpověď #15 kdy: 18 Dubna 2016, 10:04:34 »
Přesměruj si výstup někam do logu a odpoj proces od aktuálního terminálu

Kód: [Vybrat]
prikaz > /var/log/core-mono.log 2>&1 &

EDIT: Aha, pozde  :)
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #16 kdy: 18 Dubna 2016, 10:34:42 »
Akorát mám problém s automatickým spouštěním. Někde jsem četla, že by se to mělo nějak nastavit, aby to spouštěl po restartu, ale u mě to funguje samo bez nastavení. Ale u ostatních distribucí / PC to ale nemusí být pravidlem, a budu si to muset ověřit a připravit nějaký skript na zprovoznění ?
« Poslední změna: 18 Dubna 2016, 10:36:53 od JanaV »
Jana

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #17 kdy: 20 Dubna 2016, 09:20:20 »
Snažím se vytvořit instalátor, který automaticky vygeneruje tu mojí službu, ale hlásí mi to chybu u 2 podobných řádků

sudo sh -c 'echo "PID=`ps -ef | grep RTKernel.exe | grep -v grep | awk '{print $2}'`" >> '$SVC_DIR/$SVC_NAME''

chyba:
}`" >> /etc/init.d/core-mono: 1: }`" >> /etc/init.d/core-mono: Syntax error: EOF in backquote substitution

Na jednom webu to někomu hlásilo stejnou chybu u znaku  `  , ale jemu chyběl ten znak na konci, ale já to mám na konci i začátku, a stejně to chybuje. Překontrolovala jsem si uzavorkování, a vypadá v pořádku.

Netušíte, na čem by to mohlo ještě chybovat, a proč v té chybě vypisuje 2x >> , když já to tam mám pouze jednou?
« Poslední změna: 20 Dubna 2016, 09:27:47 od JanaV »
Jana

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Služby pod init.d
« Odpověď #18 kdy: 20 Dubna 2016, 09:43:25 »
Osobne bych to rozdelil na dva radky a vyhnul se zpetnejm apostrofum:

Kód: [Vybrat]
psgrepawk=$(ps -ef | grep RTKernel.exe | grep -v grep | awk '{print $2}')
sudo echo "PID=$psgrepawk" >> "$SVC_DIR/$SVC_NAME"
« Poslední změna: 20 Dubna 2016, 09:44:57 od Martin Šácha »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

JanaV

  • Návštěvník
  • Příspěvků: 33
Re:Služby pod init.d
« Odpověď #19 kdy: 20 Dubna 2016, 11:12:59 »
Jenže já to potřebuju vyechovat včetně těch podivných apostrofů ` , protože v kódu služby to tam figuruje. Když použiju proměnnou, tak tam musím dát i ty apostrofy, a obávám se, že to pak bude vracet stejné chyby.
« Poslední změna: 20 Dubna 2016, 11:16:59 od JanaV »
Jana

 

Provoz zaštiťuje spolek OpenAlt.