praegune kellaaeg 17.06.2025 16:04:29
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
warwas
HV Guru

liitunud: 06.07.2003
|
29.10.2015 19:37:25
Skripti käivitamine "teenusena" ebaõnnestub |
|
|
Lugu iseenesest lihtne - on üks bash'i skript, mis oleks vaja init skripti abil käima tõmmata.
Skript selline:
bash:
|
#!/bin/bash . /etc/adex-player.conf while true; do down=$(ifstat -b -q -S 0.1 1 | perl -n -e '/(\d+\.\d+).*(\d+\.\d+)/ && print "$1"') threshold=1000 comp=$(echo $down'<'$threshold | bc -l) if [ $comp -ne 0 ] then logger "Restarting player service" service adex-player restart fi logger "Sleeping for $CHECK_DELAY" sleep $CHECK_DELAY done
|
Init selline:
bash:
|
#!/bin/bash # Start on runlevels 3, 4 and 5. # chkconfig: 345 95 05 #!/bin/bash # absolute path to executable binary progpath='/usr/bin/adex-watchdog.sh' # arguments to script opts='' # binary program name prog=$(basename $progpath) # pid file pidfile="/var/run/${prog}.pid" # make sure full path to executable binary is found ! [ -x $progpath ] && echo "$progpath: executable not found" && exit 1 eval_cmd() { local rc=$1 if [ $rc -eq 0 ]; then echo '[ OK ]' else echo '[FAILED]' fi return $rc } start() { # see if running local pids=$(pgrep $prog) if [ -n "$pids" ]; then echo "$prog (pid $pids) is already running" return 0 fi printf "%-50s%s" "Starting $prog: " '' $progpath $opts & # save pid to file if you want echo $! > $pidfile # check again if running pgrep $prog >/dev/null 2>&1 eval_cmd $? } stop() { # see if running local pids=$(pgrep $prog) if [ -z "$pids" ]; then echo "$prog not running" return 0 fi printf "%-50s%s" "Stopping $prog: " '' rm -f $pidfile kill -9 $pids eval_cmd $? } status() { # see if running local pids=$(pgrep $prog) if [ -n "$pids" ]; then echo "$prog (pid $pids) is running" else echo "$prog is stopped" fi } case $1 in start) start ;; stop) stop ;; status) status ;; restart) stop sleep 1 start ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 esac exit $?
|
Teenuse käivitamisel aga juhtub nii:
pi@pleier ~ $ sudo service adex-watchdog start
Job for adex-watchdog.service failed. See 'systemctl status adex-watchdog.service' and 'journalctl -xn' for details.
pi@pleier ~ $ sudo systemctl status adex-watchdog.service
● adex-watchdog.service - (null)
Loaded: loaded (/etc/init.d/adex-watchdog)
Active: failed (Result: exit-code) since Thu 2015-10-29 18:26:45 EET; 35s ago
Oct 29 18:26:45 pleier adex-watchdog[5273]: Starting adex-watchdog.sh: [FAILED]
Oct 29 18:26:45 pleier systemd[1]: adex-watchdog.service: control process exited, code=exited status=1
Oct 29 18:26:45 pleier systemd[1]: Failed to start (null).
Oct 29 18:26:45 pleier systemd[1]: Unit adex-watchdog.service entered failed state.
Oct 29 18:26:45 pleier adex-watchdog[5273]: Job for adex-player.service failed. See 'systemctl status adex-player.service' and 'journ...etails. |
Niisama käsitsi käivitades tööta skript kenasti. Feilib ainult siis, kui tahta läbi init'i käivitada.
Kusjuures kõige kummalisem on see, et see skript läheb tegelikult ka läbi init'i käima. Annab vea aga tegelikult läheb käima. Kuna ta aga jääb kuhugi "ula peale", siis 'stop' käsule ta enam ei allu ja tuleb vajadusel käsitsi ära killida.
Ehk siis minu küsimus oleks see, et mille abil ma välja saan peilida selle "exit=1" põhjuse?
viimati muutis warwas 29.10.2015 19:47:37, muudetud 1 kord |
|
Kommentaarid: 247 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
3 :: |
224 |
|
tagasi üles |
|
 |
mihkelv
HV kasutaja
liitunud: 25.02.2004
|
29.10.2015 19:42:17
|
|
|
Miks sa kasutad systm-v init skripti, kui sul on systemd?
|
|
Kommentaarid: 6 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
5 |
|
tagasi üles |
|
 |
warwas
HV Guru

liitunud: 06.07.2003
|
29.10.2015 20:02:28
|
|
|
mihkelv kirjutas: |
Miks sa kasutad systm-v init skripti, kui sul on systemd? |
Täiesti õigustatud küsimus. Eelmist posti kirjutades jäin just sama asja peale mõtlema, et äkki peaks selle asja üldse tervenisti systemd peale ringi tegema.
Kuna aga systemd peaks ju suuremalt jaolt "alla poole" ühilduv olema, siis vaatamata sellele, et praegu on see mul SystemV peale rihitud, peaks ta ikkagi toimima.
Seda enam, et samas masinas analoogne skript jookseb ilusti ilma probleemideta käima.
Aga selle systemd peale 'migreerimise' proovin igatahes ära.
|
|
Kommentaarid: 247 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
3 :: |
224 |
|
tagasi üles |
|
 |
Supiplex
HV veteran

liitunud: 11.12.2002
|
30.10.2015 22:50:37
|
|
|
Võib juhtuda näiteks et initskripti käivitaval asjal on PATH-ist "/usr/bin" puudu. Proovi lisada oma initskripti algusesse midagi taolist "PATH=/sbin:/bin:/usr/bin"
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|