Autore Topic: [Risolto] Priorita con nice  (Letto 1009 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
[Risolto] Priorita con nice
« il: 07 Luglio 2019, 23:06:06 »
Ciao raga
ho un programma che assorbe molte risorse, per farlo lavorare meglio gli assegno priorità alta con nice (-20) da terminale

il problema è che ogni volta che si riavvia devo assegnare la priorità da terminale.
si può fare qualcosa all'interno del programma in modo che ad ogni avvio si autosetta la priorita?
non posso nemmeno intervenire sul pid in quanto cambia ogni volta
« Ultima modifica: 08 Luglio 2019, 14:18:07 da dex »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Priorita con nice
« Risposta #1 il: 08 Luglio 2019, 00:57:58 »
Non puoi usare Shell nella prima routine del programma ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Priorita con nice
« Risposta #2 il: 08 Luglio 2019, 09:18:20 »
Ciao raga
ho un programma che assorbe molte risorse, per farlo lavorare meglio gli assegno priorità alta con nice (-20) da terminale
...

questo dovrebbe fare al caso tuo:
http://gambaswiki.org/wiki/comp/gb/application/priority?l=it
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Priorita con nice
« Risposta #3 il: 08 Luglio 2019, 09:50:23 »
questo dovrebbe fare al caso tuo:
http://gambaswiki.org/wiki/comp/gb/application/priority?l=it
E' proprio ciò che gli serve.
Non conoscevo questa Proprietà della Classe Application.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:Priorita con nice
« Risposta #4 il: 08 Luglio 2019, 09:59:44 »
...
Non conoscevo questa Proprietà della Classe Application.

Me la sono ricordata perché non è molto che l'ho tradotta, ancora qualche giorno e la ripongo nel comparto oblio del cervello  :)
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Priorita con nice
« Risposta #5 il: 08 Luglio 2019, 10:10:20 »
Si potrebbe sempre sbizzarrire con una funzione esterna:  ;D

Codice: [Seleziona]
Library "libc:6"

' int nice (int __inc)
' Add INC to priority of the current process.
Private Extern nice(__inc As Integer) As Integer


Public Sub Main()

  If nice(-20) = -1 Then Error.Raise("Errore nell'assegnazione della priorità del processo !")

End
Va creato l'eseguibile e lanciato da terminale con "sudo", poiché, come dice la wiki ufficiale "Solo il superuser può utilizzare una priorità negativa.".
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re:Priorita con nice
« Risposta #6 il: 08 Luglio 2019, 14:17:19 »
Non puoi usare Shell nella prima routine del programma ?

no vuott
Codice: [Seleziona]
Solo il superuser può utilizzare una priorità negativa.

il problema è la password, potevo anche crearmi uno script, come anche il suggerimento di gianluigi,  rimane sempre il problema dell'immisione poassword,
cmq ho risolto, ho trovato un'articolo in rete per assegnare nice al gruppo sudo sudo

riporto i passaggi se dovessero servire

è possibile configurare sudo in modo tale che non richieda di fornire una password quando qualcuno del gruppo sudo deve accedere
Codice: [Seleziona]
sudo visudo

Aggiungi la seguente riga alla fine del file:
Codice: [Seleziona]
%sudo   ALL = (ALL) NOPASSWD: /usr/bin/nice,/usr/bin/renice

Salva e chiudi l'editor, poi dai
Codice: [Seleziona]
sudo nice -n -20 sudo -u $USER tuoprogramma.gambas

per farlo partire con la priorita alta, nel lanciatore anteponi al nome del tuo programma:
Codice: [Seleziona]
sudo nice -n -20 sudo -u $USER tuoprogramma.gambas

se invece vuoi dare una priorita molto bassa non hai bisogno di sudo, nel lanciatore scrivi
Codice: [Seleziona]
 nice -n  20  tuoprogramma.gambas

per cambiare la priorita ad un programma gia avviato puoi usare renice

Attenzione con priorita -20 il tuo programma gira alla grande ma assorbe  molte risorse e su pc datati potrebbe bloccare tutto

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Priorita con nice
« Risposta #7 il: 08 Luglio 2019, 15:26:08 »
no vuott
Codice: [Seleziona]
Solo il superuser può utilizzare una priorità negativa.

il problema è la password, potevo anche crearmi uno script, come anche il suggerimento di gianluigi,  rimane sempre il problema dell'immisione poassword,

...e se lo lanci così:

~$ sudo gbr3 '/percorso/del/programma.gambas'
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re:Priorita con nice
« Risposta #8 il: 08 Luglio 2019, 23:24:27 »
no vuott
Codice: [Seleziona]
Solo il superuser può utilizzare una priorità negativa.

il problema è la password, potevo anche crearmi uno script, come anche il suggerimento di gianluigi,  rimane sempre il problema dell'immisione poassword,

...e se lo lanci così:

~$ sudo gbr3 '/percorso/del/programma.gambas'

meglio di no
primo mi chiederebbe la password ogni volta (forse aggiungendo gbr3 al gruppo sudo non chiederebbe)
secondo un programma avviato con sudo quando scrive file sul disco può creare problemi di permessi
terzo con l'aggiunta di nice e renice al gruppo sudo, avvio con nice con la priorità impostata, ma poi con renice posso cambiare durante l'esecuzione del programma

avviando con nice la password di root serve solo a nice, il programma viene avviato normalmente, avviando direttamente gambas con sudo avrei un programma in esecuzione superutente

Edit: sto pensando di sfruttare il salvaschermo, avvio normalmente con priorità 0, appena parte il salvaschermo (vuol dire che non uso il pc), con renice metto priorità -20 cosi sfrutto i tempi morti
« Ultima modifica: 08 Luglio 2019, 23:36:38 da dex »