script funzionamento processi
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
script funzionamento processi
Ciao a tutti ho uno script perl che va a leggere se un processo é attivo e scrive poi del codice html .Per far questo va a leggere il file /var/run/asterisk.pid nel mio caso e altri /var/run/crond.pid /var/run/httpd.pid.Il problema é che pur essendo tutti i processi funzionanti il processo relativo ad asterisk risulta STOPPED secondo lo script penso per un problema di permessi:
-rw-r--r-- 1 root root 5 Sep 12 12:40 asterisk.pid
-rw-r--r-- 1 root root 5 Sep 11 16:19 crond.pid
-rw-r--r-- 1 root root 5 Sep 11 16:19 httpd.pid
Quale puo essere il problema?
-rw-r--r-- 1 root root 5 Sep 12 12:40 asterisk.pid
-rw-r--r-- 1 root root 5 Sep 11 16:19 crond.pid
-rw-r--r-- 1 root root 5 Sep 11 16:19 httpd.pid
Quale puo essere il problema?
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
Codice: Seleziona tutto
~> cat /proc/self/status | grep State
State: R (running)fai prima con bash
ps: self = #PID processo
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
E se fai:alessiodf ha scritto:Codice: Seleziona tutto
~> cat /proc/self/status | grep State
Codice: Seleziona tutto
> grep State /proc/self/statusSpina
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
ovvio ma... o,ospina ha scritto:E se fai:alessiodf ha scritto:Codice: Seleziona tutto
~> cat /proc/self/status | grep StateChe ci perdi? Perchè lanciare due processi quando grep è stato inventato a posta?Codice: Seleziona tutto
> grep State /proc/self/status
Spina
che centra?
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Nientealessiodf ha scritto:ovvio ma... o,o
che centra?
, non ho capito ancora se molti la usano perchè vista in altri thread o perchè l'hanno letta da qualche parte.....bhò, alla fine, chi se ne fregacat | grep
comunque sono convinto come te che non bisogna scomodare perl, ma penso che lui lo faccia per generare il codice html.
@marco79
Io non credo ci siano errori di permessi, da quello che hai postato chiunque può aprire il file in lettura. Come fà lo script ad identificare che il processo è in run? Legge il pid e poi fa un controllo? Se si, che controllo fa? Come suggerito da alessiodf, puoi prelevare il pid dal file, ad esempio con:
Codice: Seleziona tutto
pid=`cat /var/run/asterisk.pid`Codice: Seleziona tutto
grep State /proc/$pid/statusSpina
Il fatto di usare perl dipende dal fatto che lo script non l'ho fatto io e poi perchè genera del codice html che viene richiamato in un pagina php.Lo script usa una funzione:
.
In pratica va a vedere se cé il pid.
Asterisk funziona come gli altri solo che gli altri mi dice running e asterisk stopped...bo
.
Codice: Seleziona tutto
sub isrunning
{
my $cmd = $_[0];
my $status = "<TABLE CELLPADDING='2' CELLSPACING='0' BGCOLOR='$colourlightred'><TR><TD>stopped</TD></TR></TABLE>";
my $pid = '';
my $testcmd = '';
my $exename;
$cmd =~ /(^[a-z]+)/;
$exename = $1;
if (open(FILE, "/var/run/${cmd}.pid"))
{
$pid = <FILE>; chop $pid;
close FILE;
if (open(FILE, "/proc/${pid}/status"))
{
while (<FILE>)
{
if (/^Name:\W+(.*)/) {
$testcmd = $1; }
}
close FILE;
if ($testcmd =~ /$exename/)
{
$status = "<TABLE CELLPADDING='2' CELLSPACING='0' BGCOLOR='$colourlightgreen'><TR><TD>running</TD></TR></TABLE>";
if (open(FILE, "/proc/${pid}/cmdline"))
{
my $cmdline = <FILE>;
if (!$cmdline) {
$status = "$status (swapped)"; }
}
}
}
}
return $status;
}
Asterisk funziona come gli altri solo che gli altri mi dice running e asterisk stopped...bo
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
Codice: Seleziona tutto
cat /var/run/asterisk.pidCodice: Seleziona tutto
cat /var/run/asterisk.pid
8779
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
Codice: Seleziona tutto
cat "/proc/`cat /var/run/asterisk.pid`/status"Codice: Seleziona tutto
cat /proc/`cat /var/run/asterisk.pid`/status
Name: asterisk
State: S (sleeping)
SleepAVG: 78%
Tgid: 8779
Pid: 8779
PPid: 8775
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 0 1 2 3 4 6 10
VmPeak: 25160 kB
VmSize: 25120 kB
VmLck: 0 kB
VmHWM: 10404 kB
VmRSS: 10400 kB
VmData: 12408 kB
VmStk: 88 kB
VmExe: 860 kB
VmLib: 9324 kB
VmPTE: 60 kB
StaBrk: 08132000 kB
Brk: 09cd9000 kB
StaStk: bfba06a0 kB
ExecLim: 49eb6000
Threads: 22
SigQ: 1/7162
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001004
SigCgt: 0000000181414003
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
Cpus_allowed: ffffffff
Mems_allowed: 1
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
Codice: Seleziona tutto
#!/bin/bash
# @author: Slux <alessiodf>
RUN_DIR="/var/run/"
# here only the file names without the extension
ARRAY_PIDS=( crond httpd mysqld pure-ftpd sshd cups hald )
####################################
cd $RUN_DIR
echo -e "#PID\tPid file\tState"
echo
for fpid in `echo ${ARRAY_PIDS[*]}`
do
CURRENT_PID=`cat $fpid.pid`
if [[ "$CURRENT_PID" =~ [0-9]+ ]]
then
echo -en "$CURRENT_PID\t"
echo -en "$fpid\t\t"
if [[ "`grep Name /proc/$CURRENT_PID/status`" =~ $fpid ]]
then
echo -e "RUNNING"
else
echo -e "NOT RUNNING"
fi
else
echo -e "Empty\t$fpid\t\tUnknow"
fi
done
Codice: Seleziona tutto
#PID Pid file State
5951 crond RUNNING
6143 httpd RUNNING
6058 mysqld RUNNING
6087 pure-ftpd RUNNING
6018 sshd RUNNING
Empty cups Unknow
5905 hald RUNNING