[Risolto] Script che evita di aprire un programma 2 volte

Se avete dubbi o domande sulla programmazione in generale, fatele qui
Rispondi
Avatar utente
nTia89
Robin Hood
Messaggi: 2490
Iscritto il: 23 dicembre 2008, 19:01
Architettura: x86_64 (64bit)
Località: Varese

Messaggio da nTia89 » 19 settembre 2009, 19:21

ciao a tutti

vorrei fare uno script che mi permetta di lanciare un programma se questo non è già aperto
invece se c'è già una istanza chiuderlo

chi mi aiuta ???

PS: mi serve perchè così sul pannello pypanel se clicco l'orologio mi apre il calendario e ricliccando lo chiudo, poichè c'è già una istanza aperta....

grazie
+laptop: Dell XPS 9343 | i5-5600U | FullHD | 256GB SSD | ArchLinux x86_64 + gnome

issproevolution
Arciere Provetto
Messaggi: 517
Iscritto il: 22 settembre 2007, 20:20
Località: /dev/null

Messaggio da issproevolution » 19 settembre 2009, 19:41

Codice: Seleziona tutto

#!/bin/bash

pid=$(ps aux | grep kaff | head -1 | awk '{print $2}' )

if [[ "$pid" != "" ]]
then
  kill $pid
else
  kaffeine&
  xmodmap .Xmodmap
fi
l'avevo fatto per kaffeine per poter accendere e spegnere la televisione dal telecomando.. ;)

Avatar utente
nTia89
Robin Hood
Messaggi: 2490
Iscritto il: 23 dicembre 2008, 19:01
Architettura: x86_64 (64bit)
Località: Varese

Messaggio da nTia89 » 19 settembre 2009, 20:26

issproevolution ha scritto:

Codice: Seleziona tutto

#!/bin/bash

pid=$(ps aux | grep kaff | head -1 | awk '{print $2}' )

if [[ "$pid" != "" ]]
then
  kill $pid
else
  kaffeine&
  xmodmap .Xmodmap
fi
l'avevo fatto per kaffeine per poter accendere e spegnere la televisione dal telecomando.. ;)
grazie mille
+laptop: Dell XPS 9343 | i5-5600U | FullHD | 256GB SSD | ArchLinux x86_64 + gnome

issproevolution
Arciere Provetto
Messaggi: 517
Iscritto il: 22 settembre 2007, 20:20
Località: /dev/null

Messaggio da issproevolution » 19 settembre 2009, 21:09

figurati.. ovviamente poi dovrai adattarlo alle tue esigenze =)

Nss
Novello Arciere
Messaggi: 50
Iscritto il: 23 gennaio 2008, 10:20

Messaggio da Nss » 20 settembre 2009, 1:20

buttate un occhio su

Codice: Seleziona tutto

man pidof
lo script diventerebbe

Codice: Seleziona tutto

  #!/bin/bash

  if ! pidof <nomeprogramma> 1> /dev/null
  then
     <nomeprogramma>&
  fi
Slackware -> Gentoo -> Archlinux
http://lanziani.com/blog/

psychoweb
Novello Arciere
Messaggi: 108
Iscritto il: 15 luglio 2008, 8:58

Messaggio da psychoweb » 20 settembre 2009, 13:56

Codice: Seleziona tutto

(pgrep -f <programma> && pkill -f <programma>) || <programma>
minimale, non perfetto.... :)
Ultima modifica di psychoweb il 20 settembre 2009, 13:56, modificato 1 volta in totale.

aleph
Robin Hood
Messaggi: 1530
Iscritto il: 12 febbraio 2008, 16:30
Contatta:

Messaggio da aleph » 20 settembre 2009, 14:46

più compatto ancora

Codice: Seleziona tutto

killall -e <programma> || <programma>
ImmagineOutside of a dog, computers are a man's best friend, inside a dog it's too dark to type.

Nss
Novello Arciere
Messaggi: 50
Iscritto il: 23 gennaio 2008, 10:20

Messaggio da Nss » 20 settembre 2009, 20:48

Codice: Seleziona tutto

! pidof <programma> && <programma>
Slackware -> Gentoo -> Archlinux
http://lanziani.com/blog/

Rispondi