Linux Mind Italia

  • Lunedì 19 Novembre 2018, 09:59:50
  • Benvenuto, Visitatore
Effettua l'accesso o una nuova registrazione.

Inserisci il nome utente, la password e la durata della sessione.
Ricerca avanzata

News:

Vuoi installare LMDE, Debian e derivate su SSD? ... leggi la guida di ilCapo.

collapse

* Canale Telegram

Canale informativo di riserva:
Linuxminditalia
https://t.me/linuxmind

* Mind-chat

Refresh History
  • nessuno: :ciao:
    Ieri alle 09:39:29
  • Pope: :ciao:
    Venerdì 16 Novembre 2018, 15:42:05
  • Pope: :ciao:
    Venerdì 16 Novembre 2018, 15:41:56
  • cuzzo: bau
    Giovedì 15 Novembre 2018, 17:27:26
  • bobol: :ok:
    Giovedì 15 Novembre 2018, 13:02:55
  • Tony: [link]
    Giovedì 15 Novembre 2018, 08:42:37
  • cuzzo: noche
    Mercoledì 14 Novembre 2018, 22:28:10
  • cuzzo: aloa
    Mercoledì 14 Novembre 2018, 18:45:56
  • Tony: :ciao:
    Mercoledì 14 Novembre 2018, 15:38:05
  • bobol: :ciao:
    Mercoledì 14 Novembre 2018, 15:32:16
  • Cavaleri Omar: :sigh: :sigh: :sigh:
    Lunedì 12 Novembre 2018, 20:53:06
  • mtj-mint: [link]    sigh, addio caro Stan. Peter Parker è orfano :(
    Lunedì 12 Novembre 2018, 20:17:06
  • bobol: :ciao:
    Sabato 10 Novembre 2018, 22:43:43
  • SupertuxKart: Senza lo spazio non appare l'emoticon, ciao a tutti comunque.
    Sabato 10 Novembre 2018, 22:28:48
  • SupertuxKart: :ciao: bob
    Sabato 10 Novembre 2018, 22:28:12
  • SupertuxKart: :ciao:bob
    Sabato 10 Novembre 2018, 22:27:33
  • bobol: :ciao:
    Sabato 10 Novembre 2018, 10:42:30
  • mtj-mint: E i vari Asterix e Lucky Luke e i vari Grinch, Scrooge, Babbo Bastardo, il segreto del Natale etc etc...
    Venerdì 09 Novembre 2018, 22:52:04
  • mtj-mint: Ah no spè.. c'è anche The Bliues Brothers
    Venerdì 09 Novembre 2018, 22:50:36
  • mtj-mint: E dopo 6 giorni tocca a Frankeinstein Jr e The Rocky Horror Picture Show :D
    Venerdì 09 Novembre 2018, 22:50:10
  • Cavaleri Omar: ... il Natale si avvicina..
    Venerdì 09 Novembre 2018, 15:14:41
  • Cavaleri Omar: Mancano meno di 50 giorni a "Una poltrona per due"...
    Venerdì 09 Novembre 2018, 15:11:59
  • nessuno: :ciao:
    Venerdì 09 Novembre 2018, 11:25:05
  • Cavaleri Omar: Può darsi... :rofl:
    Sabato 03 Novembre 2018, 11:32:18
  • nessuno: ... Perché è cicciottello e in una poltrona per uno ci va stretto?  :grin:
    Venerdì 02 Novembre 2018, 21:59:19
  • bobol: ;D
    Venerdì 02 Novembre 2018, 19:34:36
  • mtj-mint: Bè è come dire che a Natale non nasce Gesù Bambino se non trasmettono Una poltrona per due :D
    Venerdì 02 Novembre 2018, 19:19:23
  • bobol: :ciao:
    Venerdì 02 Novembre 2018, 07:23:07
  • Cavaleri Omar: Che primo novembre sarebbe se un TV non danno di fila i due "La Famiglia Addams"?
    Giovedì 01 Novembre 2018, 18:26:26
  • TheBaron: :ciao:
    Giovedì 01 Novembre 2018, 02:29:00

* Utenti On Line

  • Dot Visitatori: 20
  • Dot Nascosti: 0
  • Dot Utenti: 1
  • Dot Utenti Online:

Autore Topic: [RISOLTO] Script che esegue programma se un processo è in esecuzione  (Letto 82 volte)

Jacobbe73

  • New Mind
  • *
  • Offline Offline
  • Post: 15
  • Distro: Linux Mind 19.0 Mate
[RISOLTO] Script che esegue programma se un processo è in esecuzione
« il: Lunedì 29 Ottobre 2018, 01:13:51 »

Ciao a tutti,
sul mio server domestico, dove ho installato la Linux Mint 19.0 Mate, sto impazzendo a creare uno script che esegua dei comandi da terminale (nel mio caso forzi lo stand-by di tutti i mei dischi) solo se un processo è in esecuzione (interrogo lo screensaver nel mio caso "xmatrix").
Qui di seguito posto il mio script che purtroppo non funziona:

Codice: [Seleziona]
#!/bin/bash
if ps ax | grep -v grep | grep &xmatrix > /dev/null
then
hdparm -y /dev/sdb
hdparm -y /dev/sdc
hdparm -y /dev/sdd
hdparm -y /dev/sde
hdparm -y /dev/sdf
fi
exit

forse sono completamente fuori strada, ogni suggerimento è ben accetto!
Spero di esser stato chiaro.
Saluti e grazie!
Jacobbe73
« Ultima modifica: Lunedì 29 Ottobre 2018, 21:33:01 da Jacobbe73 »
Connesso

Tony

  • Staff
  • Hero Mind
  • ******
  • Offline Offline
  • Post: 3531
  • Distro: Ubuntu 18.04.1 LTS 64bit XFCE
Re:Script che esegue programma se un processo è in esecuzione
« Risposta #1 il: Lunedì 29 Ottobre 2018, 05:27:39 »

Codice: [Seleziona]
#!/bin/bash
ps ax | grep -v grep | grep -q xmatrix
if [ $? -eq 0 ]
then
hdparm -y /dev/sdb
hdparm -y /dev/sdc
hdparm -y /dev/sdd
hdparm -y /dev/sde
hdparm -y /dev/sdf
fi
exit

P.S. quando devi riportare del codice usa il tag code, non un colore diverso.
Inoltre, le prossime volte, cerca di essere più specifico.
Se un comando o uno script non funziona, è opportuno che riporti l'errore che il sistema ti dà.
Una domanda, poi.
Hai usato una & nel tuo script.
Lo hai fatto per un motivo specifico?
Perché io l'ho tolta. Messa così non aveva senso, anzi creava problemi.
Lo script, ovviamente, va reso esecutivo.
Inoltre, fa quello che deve fare una sola volta e poi esce, mentre, se la tua intenzione è quella di averlo sempre in esecuzione è opportuno utilizzare un ciclo while oppure eliminare l'ultima riga exit e sostituirla con exec $0
Prima potresti anche aggiungere una pausa tra i controlli con il comando sleep.
« Ultima modifica: Lunedì 29 Ottobre 2018, 09:17:18 da Tony »
Connesso
Linux non è solo un sistema operativo ma...
"È uno stato mentale, dove prima ti perdi e poi ti ritrovi"
(cit. Point Break).

Jacobbe73

  • New Mind
  • *
  • Offline Offline
  • Post: 15
  • Distro: Linux Mind 19.0 Mate
Re:Script che esegue programma se un processo è in esecuzione
« Risposta #2 il: Lunedì 29 Ottobre 2018, 11:35:26 »

Ciao Tony grazie per la tua tempestiva risposta!
Ho appreso i tuoi suggerimenti relativi alla modalità di scrittura post, starò più attento.
Per rispondere alle tue domande:
- l'errore del mio script non postato è il seguente:
Citazione
/etc/init.d/stand-by: line 2: xmatrix: command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
- La & usata nel mio script deriva probabilmente da uno script da me "scopiazzato" in rete per raggiungere il mio scopo (poi siccome erano le 2 di notte probabilmente c'ho messo anche del mio  :palm:)
- lo script è già esecutivo
- ho bisogno che faccia una sola volta quello che deve fare
- gli sleep non li ho messi (anche se in questo caso ci avevo pensato) perchè ho notato che se eseguo lo script stesso (senza la prima parte del controllo sul processo in esecuzione) i comandi hdparm lanciati così in sequenza funzionano correttamente.
Adesso provo il tuo script e ti dico!
per adesso grazie
Jacobbe73
Connesso

Jacobbe73

  • New Mind
  • *
  • Offline Offline
  • Post: 15
  • Distro: Linux Mind 19.0 Mate
Re:Script che esegue programma se un processo è in esecuzione
« Risposta #3 il: Lunedì 29 Ottobre 2018, 21:32:24 »

Allora Tony,
il tuo script funziona!  :ok:
Solo che è spuntato un altro problema (sull'esecuzione dal cron) però a questo punto apro un altro post dedicato per non fare confusione  :hmm:
Ringrazio per il prezioso supporto!
Saluti
Jacobbe73
Connesso