rpf – reactivate a program forever


Posted: febbraio 8th, 2009 | Author: Francesco Apollonio | Filed under: Programmazione | Tags: , , , | No Comments »


avete bisogno che un vostro programma resti sempre attivo ma continua a chiudersi  inspiegabilmente e ogni volta dovete riattivarlo a mano?
Questo potrebbe servirvi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
 
PROGRAM="opera"
TIMER="5s"
 
function activate {
echo -n "Attivo..."
$PROGRAM &
PID=$!
echo $PID
}
 
while true; do
if [[ -z $PID ]]; then
PID=`ps aux | grep $PROGRAM | head -1 | awk '{print $2}'`
fi
if [[ -z `ps hp $PID` ]]; then
activate
else
echo "Gia attivo: $PID"
fi
sleep $TIMER
done

una volta configurato impostando le due variabili in alto il resto è presto fatto, basta lanciarlo all’avvio!

Buon lavoro ;)


ivman utility


Posted: febbraio 5th, 2009 | Author: Francesco Apollonio | Filed under: Programmazione | Tags: , , , , , | No Comments »


tramite pmount (ed ivman) uso montare il device con etichetta “etichetta” in una directory “/media/etichetta” (ad esempio), il piccolo inconveniente di questo metodo è che se per un qualsiasi motivo il device viene smontato in maniera ‘brutale’ rimane in “/media/etichetta” un file di lock che mi impedisce di rimontarci dentro la mia povera pennina.
bene, questo script è la soluzione :D
non fa altro che controllare se effettivamente il device è montato (in /etc/mtab) e assegna a seconda dei casi una directory su cui montare:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
 
function checkIfAlreadyMounted
{
 
mountPointUsed=`cat /etc/mtab | grep $2`
 
dir=$2
if [[ -d $2 ]]; then
if [[ $mountPointUsed != "" ]]; then
dir="$2-`date +%H%m%S`"
fi
fi
echo $dir
 
}
 
function checkArguments
{
 
if [[ $# -ne 2 ]]; then
echo "Numero parametri scorretto!"
exit
fi
 
if [[ ! -b $1 ]]; then
echo "Errore nei parametri passati!"
exit
fi
test=`echo $2 | egrep '/$'`
if [[ $test -ne '' ]]; then
echo "Errore nei parametri, il secondo paramentro non deve finire per /"
exit
fi
 
alreadyMountedDevice=`cat /etc/mtab | grep $1`
 
if [[ $alreadyMountedDevice != "" ]]; then
echo "Device already Mounted!"
exit
fi
 
}
 
dest="$2"
 
#if [[ $dest -eq "/media/" ]]; then
#    dest="/media/usbdisk"
#fi
 
checkArguments $1 $dest
 
dir=`checkIfAlreadyMounted $1 $2`
echo "mounting $1 in $dir"
pmount $1 $dir
#Avvia il mio files-manager
pcmanfm $dir

spero vi sia utile con il vostro ivman ed ovviamente pmount.


xttydm (aka lanciare X dopo il login da tty)


Posted: febbraio 5th, 2009 | Author: Francesco Apollonio | Filed under: Guide, Programmazione | Tags: , , , , , | 1 Comment »


non so voi ma io nutro una particolare avversione verso tutti quei login manager (gdm, kdm, xdm) che reputo pesanti e poco funzionali, soprattutto perché utilizzando un laptop ritenevo un inutile spreco di risorse (leggasi batteria) avviare tutto l’ambaradan per (ad esempio) modificare qualche piccolo file o effettuare qualche piccola operazione.
E poi voglio far vedere a tutti il mio favoloso issue :)

da sempre quindi disattivo questo tipo di applicativi preferendo un più semplice login da terminale (tty) e poi (all’occorrenza) avviare x tramite il comando `startx`.

Per vari motivi ho deciso di muovere un ulteriore passo dato che iniziavo a digitare ad ogni avvio quel comando:
pe
rchè non posso avviare X automaticamente dopo aver effettuato il login ad esempio dalla tty1?

Bene, la soluzione è tutto sommato semplice, ho creato uno scriptino che effettua dei controlli (se eventualmente il server X è già attivo e se è tutto ok allora lancio X tramite startx appunto.
Eccolo qui:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
 
function check {
if [[ -f /tmp/login ]]; then
if [[ ! -f /tmp/.X0-lock ]]; then
rm /tmp/login
return 0
else
return 1
fi
else
touch /tmp/login
return 0
fi
}
 
check
 
if [[ $? -eq 0 ]]; then
 
startx 1>/dev/null 2>/dev/null
 
fi

Successivamente c’è da modificare .bashrc e metterci un ulteriore controllo e richiamare lo script:

1
2
3
4
case "$TERM" in
linux) ~/bin/startx.sh & ;;
*) ;;
esac

ovviamente ~/bin/startx.sh è il path completo allo script precedentemente creato.

Infine non ci resta che editare (da root) il file  /etc/X11/Xwrapper.conf settando come allowed_users=anybody

Ecco fatto ora tutto funziona alla perfezione.


  • Articoli Recenti:

  • Tag

  • Categorie

  • Meta

  • Licenza Creative Commons

    Copyright © 2012, | ldlabs.org – Blog is proudly powered by WordPress All rights Reserved | Theme by Ryan McNair modified By Francesco Apollonio

    Smilla Magazine Il Bloggatore iwinuxfeed.altervista.org Feedelissimo - tecnologia WebShake - tecnologia