Strona 1 z 2

[+] Skrypt uruchamiający dany proces po jego śmierci

: 25 lutego 2009, 11:51
autor: xmaster
Witam.
Potrzebuję napisać skrypcik, który:
  1. Sprawdzi czy dany proces żyje (w tym przypadku serwer CSa).
  2. Jeśli żyje to:

    Kod: Zaznacz cały

    exit
  3. Jeśli nie żyje to:

    Kod: Zaznacz cały

    killall proces.csa
    i ponowne uruchomienie serwera.
Generalnie to nie wiem jak sprawdzić czy dany proces jest aktywny, resztę powinienem wyskrobać.

: 25 lutego 2009, 11:58
autor: f1.micro
To Ci wywali info o danym procesie

Kod: Zaznacz cały

ps -ef | grep -i (tu nazwa)
Pamiętaj, że dostaniesz dwie linie. Jedna o procesie, a druga o zapytaniu o proces. Więc już dla samego kodu.

Kod: Zaznacz cały

ps -ef | grep -i (tu nazwa) | wc -l
I jeżeli to u góry jest => 2, proces działa.


Problem w tym, że jeżeli się zwiesi proces to on dalej będzie widoczny w ps.

: 25 lutego 2009, 12:03
autor: xmaster
Dzięki za odpowiedź
Zaraz coś posklejam i sprawdzę czy działa
Na "moim" serwerku jak pada CS to w ps go nie pokazuje więc jest szansa że u mnie to zadziała

: 25 lutego 2009, 12:07
autor: f1.micro
No to powinno działać :D

: 25 lutego 2009, 13:10
autor: xmaster
Testuje to na laptopie i mam tak
Po wykonaniu skryptu

Kod: Zaznacz cały

#/bin/bash
SPRAWDZAM='ps -ef | grep -i firefox-bin | wc -l'
URUCHAMIAM=iceweasel
if [ $SPRAWDZAM -ge 2 ]; then
echo jest ok proces działa ide na piwko;
else
$URUCHAMIAM;
fi
Uruchamia mi się Firefox pomimo iż jet uruchomiany to raz
a dwa wywala w konsoli komunikat

Kod: Zaznacz cały

./test: line 4: [: too many arguments
Rozumiem, że w jakiś inny sposób muszę uzyskać wynik polecenia

Kod: Zaznacz cały

ps -ef | grep -i firefox-bin | wc -l
Tylko jak?

: 25 lutego 2009, 13:15
autor: f1.micro
Weź:

Kod: Zaznacz cały

ps -ef
i tu wrzuć.

: 25 lutego 2009, 13:24
autor: xmaster

Kod: Zaznacz cały

hubert@hubert:~$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Feb23 ?        00:00:03 init [2]  
root         2     0  0 Feb23 ?        00:00:00 [kthreadd]
root         3     2  0 Feb23 ?        00:00:00 [migration/0]
root         4     2  0 Feb23 ?        00:00:01 [ksoftirqd/0]
root         5     2  0 Feb23 ?        00:00:00 [watchdog/0]
root         6     2  0 Feb23 ?        00:00:00 [migration/1]
root         7     2  0 Feb23 ?        00:00:00 [ksoftirqd/1]
root         8     2  0 Feb23 ?        00:00:00 [watchdog/1]
root         9     2  0 Feb23 ?        00:00:21 [events/0]
root        10     2  0 Feb23 ?        00:00:20 [events/1]
root        11     2  0 Feb23 ?        00:00:00 [khelper]
root        44     2  0 Feb23 ?        00:00:00 [kblockd/0]
root        45     2  0 Feb23 ?        00:00:00 [kblockd/1]
root        47     2  0 Feb23 ?        00:00:02 [kacpid]
root        48     2  0 Feb23 ?        00:00:15 [kacpi_notify]
root       144     2  0 Feb23 ?        00:00:00 [kseriod]
root       185     2  0 Feb23 ?        00:00:03 [pdflush]
root       186     2  0 Feb23 ?        00:00:00 [pdflush]
root       187     2  0 Feb23 ?        00:00:01 [kswapd0]
root       188     2  0 Feb23 ?        00:00:00 [aio/0]
root       189     2  0 Feb23 ?        00:00:00 [aio/1]
root       715     2  0 Feb23 ?        00:00:00 [ksuspend_usbd]
root       718     2  0 Feb23 ?        00:00:00 [khubd]
root       762     2  0 Feb23 ?        00:00:00 [khpsbpkt]
root       786     2  0 Feb23 ?        00:00:13 [ata/0]
root       796     2  0 Feb23 ?        00:00:00 [ata/1]
root       798     2  0 Feb23 ?        00:00:00 [ata_aux]
root       883     2  0 Feb23 ?        00:00:00 [knodemgrd_0]
root       904     2  0 Feb23 ?        00:00:00 [scsi_eh_0]
root       905     2  0 Feb23 ?        00:02:03 [scsi_eh_1]
root      1017     2  0 Feb23 ?        00:00:02 [kjournald]
root      1093     1  0 Feb23 ?        00:00:00 udevd --daemon
root      1557     2  0 Feb23 ?        00:00:00 [iwl3945/0]
root      1558     2  0 Feb23 ?        00:00:00 [iwl3945/1]
root      1560     2  0 Feb23 ?        00:00:00 [iwl3945]
root      1670     2  0 Feb23 ?        00:00:00 [btaddconn]
root      1671     2  0 Feb23 ?        00:00:00 [btdelconn]
root      1723     2  0 Feb23 ?        00:00:00 [kpsmoused]
root      1757     2  0 Feb23 ?        00:00:00 [pccardd]
root      2122     2  0 Feb23 ?        00:00:03 [kjournald]
root      2222     1  0 Feb23 ?        00:00:00 dhclient3 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhc
daemon    2273     1  0 Feb23 ?        00:00:00 /sbin/portmap
statd     2284     1  0 Feb23 ?        00:00:00 /sbin/rpc.statd
root      2530     2  0 Feb23 ?        00:01:50 [kondemand/0]
root      2531     2  0 Feb23 ?        00:00:00 [kondemand/1]
root      2613     1  0 Feb23 ?        00:00:01 /usr/sbin/acpid
104       2623     1  0 Feb23 ?        00:00:00 /usr/bin/dbus-daemon --system
avahi     2635     1  0 Feb23 ?        00:00:00 avahi-daemon: running [hubert.local]
avahi     2636  2635  0 Feb23 ?        00:00:00 avahi-daemon: chroot helper
root      2647     1  0 Feb23 ?        00:00:00 /usr/sbin/sshd
root      2710     1  0 Feb23 ?        00:00:00 /usr/sbin/cupsd
101       2977     1  0 Feb23 ?        00:00:00 /usr/sbin/exim4 -bd -q30m
root      3019     1  0 Feb23 ?        00:00:00 /usr/sbin/hddtemp -d -l 127.0.0.1 -p 7634 -s | /dev/sda
106       3066     1  0 Feb23 ?        00:00:14 /usr/sbin/hald
root      3067  3066  0 Feb23 ?        00:00:00 hald-runner
root      3089  3067  0 Feb23 ?        00:00:01 hald-addon-input: Listening on /dev/input/event2 /dev/input/eve
root      3091  3067  0 Feb23 ?        00:00:00 /usr/lib/hal/hald-addon-cpufreq
106       3092  3067  0 Feb23 ?        00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socke
root      3103  3067  0 Feb23 ?        00:00:43 hald-addon-storage: polling /dev/scd0 (every 2 sec)
root      3111     1  0 Feb23 ?        00:00:00 /usr/sbin/hcid -x -s
root      3125     2  0 Feb23 ?        00:00:00 [krfcommd]
daemon    3146     1  0 Feb23 ?        00:00:00 /usr/sbin/atd
root      3166     1  0 Feb23 ?        00:00:00 /usr/sbin/cron
root      3220     1  0 Feb23 ?        00:00:00 /usr/bin/xdm
root      3227     1  0 Feb23 tty1     00:00:00 /sbin/getty 38400 tty1
root      3230     1  0 Feb23 tty2     00:00:00 /sbin/getty 38400 tty2
root      3231     1  0 Feb23 tty3     00:00:00 /sbin/getty 38400 tty3
root      3232     1  0 Feb23 tty4     00:00:00 /sbin/getty 38400 tty4
root      3235     1  0 Feb23 tty5     00:00:00 /sbin/getty 38400 tty5
root      3236     1  0 Feb23 tty6     00:00:00 /sbin/getty 38400 tty6
root      3247  3220  1 Feb23 tty7     00:42:04 /usr/bin/X :0 vt7 -nolisten tcp -auth /var/lib/xdm/authdir/auth
root      3248  3220  0 Feb23 ?        00:00:00 -:0         
hubert    3286  3248  0 Feb23 ?        00:00:10 x-session-manager
hubert    3308  3286  0 Feb23 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-s
hubert    3311     1  0 Feb23 ?        00:00:00 /usr/bin/dbus-launch --exit-with-session x-session-manager
hubert    3312     1  0 Feb23 ?        00:00:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --s
hubert    3315     1  0 Feb23 ?        00:00:08 xfce-mcs-manager
hubert    3316  3286  0 Feb23 ?        00:00:26 xfwm4 --sm-client-id 117f000101000123202963800000093760000 --di
hubert    3317  3286  0 Feb23 ?        00:00:21 Thunar --sm-client-id 117f000101000123202963800000093760002 --d
hubert    3319     1  0 Feb23 ?        00:00:03 /usr/lib/gamin/gam_server
hubert    3320  3286  0 Feb23 ?        00:02:16 xfdesktop --sm-client-id 117f000101000123202964100000093760003
hubert    3325  3286  0 Feb23 ?        00:03:26 xfce4-panel --sm-client-id 117f00010100012320296380000009376000
hubert    3326  3286  0 Feb23 ?        00:07:16 kadu -session 117f000101000123272069700000049250002_1232720739_
hubert    3327  3325  0 Feb23 ?        00:01:49 /usr/lib/xfce4/panel-plugins/xfce4-menu-plugin socket_id 188744
hubert    3328  3325  0 Feb23 ?        00:00:38 /usr/lib/xfce4-sensors-plugin/xfce4/panel-plugins/xfce4-sensors
hubert    3329  3325  0 Feb23 ?        00:04:36 /usr/lib/xfce4-weather-plugin/xfce4/panel-plugins/xfce4-weather
hubert    3330  3325  0 Feb23 ?        00:00:56 /usr/lib/xfce4/panel-plugins/xfce4-mixer-plugin socket_id 18874
hubert    3331  3325  0 Feb23 ?        00:00:00 /usr/lib/xfce4-screenshooter-plugin/xfce4/panel-plugins/xfce4-s
hubert    3337     1  0 Feb23 ?        00:00:00 /usr/lib/libgconf2-4/gconfd-2 12
hubert    3339  3327  0 Feb23 ?        00:01:57 claws-mail
hubert    7040     1  3 Feb24 ?        00:42:15 /usr/lib/iceweasel/firefox-bin
root      8936     1  0 09:30 ?        00:00:00 syslog-ng
hubert    9204     1  0 12:04 ?        00:00:04 xfce4-terminal
hubert    9205  9204  0 12:04 ?        00:00:00 gnome-pty-helper
hubert    9222  9204  0 12:09 pts/1    00:00:00 bash
hubert    9383  9204  0 12:59 pts/0    00:00:00 bash
hubert    9508  9222  0 13:23 pts/1    00:00:00 ps -ef

: 25 lutego 2009, 13:30
autor: f1.micro

Kod: Zaznacz cały

#/bin/bash
SPRAWDZAM='ps -ef | grep -i firefox-bin | wc -l'
URUCHAMIAM=iceweasel
{
if [ $SPRAWDZAM = 2 ]; then
echo jest ok proces działa ide na piwko;
else
$URUCHAMIAM;
fi
}

Spróbuj coś takiego. Ew jeszcze weź 2 w apostrofy, bo możliwe, że wc wywala wartość tekstową a nie liczbową, jeżeli to ma jakieś znaczenie. Text po echo też weź obejmij apostrofami.


A samo, daje wynik 2?

Kod: Zaznacz cały

ps -ef | grep -i firefox-bin | wc -l

: 25 lutego 2009, 13:36
autor: xmaster
hubert@hubert:~$ ps -ef | grep -i firefox-bin | wc -l
2
Nadal za dużo argumentów :( tylko teraz w linii 5 :) przez {

teraz jest tak i nadal lipa
#/bin/bash
SPRAWDZAM='ps -ef | grep -i firefox-bin | wc -l'
URUCHAMIAM=iceweasel
{
if [ $SPRAWDZAM -ge 2 ]; then
echo 'jest ok proces działa ide na piwko';
else
$URUCHAMIAM;
fi
}

: 25 lutego 2009, 13:44
autor: f1.micro
-ge na =

Zamieniałeś? Spróbuj, może o to chodzi.