Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: panRajce 26 Červen 2019, 09:08:47

Název: skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 26 Červen 2019, 09:08:47
Ahoj,
snažím se najít, jestli pro Conky (nebo samostatně) existuje skript, který umožní při určité události vypnout PC?

Přesněji potřebuji
- při sledování hodnoty nvidia-settings - GPU Utilization bude nižší jak 10% po dobu např. 60sec, pak vypnout počítač
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 26 Červen 2019, 09:25:37
Ahoj,
snažím se najít, jestli pro Conky (nebo samostatně) existuje skript, který umožní při určité události vypnout PC?

Přesněji potřebuji
- při sledování hodnoty nvidia-settings - GPU Utilization bude nižší jak 10% po dobu např. 60sec, pak vypnout počítač

Tak si ho prostě napiš. Budeš ho ale muset spouštět pravidelně v určitém intervalu (cronem).
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 26 Červen 2019, 11:48:42
Tak si ho prostě napiš.

Kdybych to uměl, tak bych se neptal :)

Budeš ho ale muset spouštět pravidelně v určitém intervalu (cronem).

právě proto jsem doufal, že by něco šlo přímo do Conky, které už v nějakém intervalu má sledování prostředků a vím že do něj lze vnořit LUA skript. Ale co se týče skriptování, tak nevím ani zbla  ;D
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 26 Červen 2019, 12:38:50
Nauč se to, určitě se ti to bude hodit http://tldp.org/LDP/Bash-Beginners-Guide/html/
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 26 Červen 2019, 12:45:45
Nauč se to, určitě se ti to bude hodit http://tldp.org/LDP/Bash-Beginners-Guide/html/

Toť otázka ... mne živí jiné odvětví (3D CGI) a Ubuntu si oťukávám v rámci jednoho firemního PC (nVidia GPU Renderfarma), obávám se, že kromě daného tématu je pro mne LUA nepoužitelná.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 26 Červen 2019, 13:10:27
Kód: [Vybrat]
#!/bin/bash
GPU=$(zde_bude_příkaz_kterým_conky_zjišťuje_tu_hodnotu)
if [[ ${GPU} -le 10 ]]; then
    dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:false
fi

Zbytek už je na tobě...
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 26 Červen 2019, 13:43:14
Zbytek už je na tobě...

Díky

... jen nechci moc rýpat, oceňuji pomoc ... ale chápu-li to správně tak tohle by mělo zajistit vypnutí PC pokud GPU je pod 10% ... ale nevidím tam nic pro prodlevu .... takže by došlo vlastně k vypnutí PC OKAMŽITĚ, když nebude zatížená GPU ????
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 26 Červen 2019, 14:18:34
Ten skript budeš spouštět např. každých 5 minut. Pokud bude v tom okamžiku GPU pod 10%, PC se vypne - ihned.
V intervalu těch pěti minut může být GPU libovolný - nestane se nic.
A ten loop lze ještě zdvojit - to značí, že třeba po minutě se "test" zopakuje, a PC se vypne pouze pokud i při tomto druhém "testu" je GPU pod 10%.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 01 Červenec 2019, 15:22:59
Ten skript budeš spouštět např. každých 5 minut.
a na to bude asi dobrej Cron ... co jsem tak hledal na netu :)
Dvojité ověření je také dobré.
A pravda, že tohle řešení mi nebude vypínat PC když budu na Ubuntu něco testovat a nepojedou vNidie  8) Prostě si nespustím tenhle proces.
Jan pak ještě naučit i kolegy, když budou renderovat, aby proces spustili a mašina neběžela celý víkend na prázdno.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: Petr Merlin Vaněček 01 Červenec 2019, 17:54:05
@juwa2 :-)
Kód: [Vybrat]
poweroff
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 01 Červenec 2019, 18:54:39
@juwa2 :-)
Kód: [Vybrat]
poweroff

Jasně, zapomněl jsem, že poweroff nevyžaduje "sudo"..... :)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 08 Červenec 2019, 12:50:47
Prosím o pomoc, jak tedy nastavit Crontab pro spuštění úlohy s vícenásobným ověřením?
Mým záměrem je tedy použít script výše uvedený pro vypnutí počítače, pokud GPU není dostatečně zatížená.
Ale rád bych tak učinil po několika ověřeních.

Řekněme takto:
- cronetab každých pět minut scriptem zkontroluje zatížení GPU
- pokud zatížení bude pod 10% (pravda), počká dalších 5 minut, znovu zkontroluje zatížení
- pokud zatížení bude pod 10% (pravda), počká dalších 5 minut, znovu zkontroluje zatížení
- pokud zatížení bude i potřetí zatížení pod 10% (pravda) dojde k vypnutí počítače (poweroff)

Takže pokud karta nebude pracovat, po 10 minutách dojde k vypnutí počítače, pokud v tomto intervalu bude zatížení větší jak 10% začne sledování od začátku.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 08 Červenec 2019, 13:12:35
V tom případě stačí ten skript spouštět pouze každých 16 min (cronem).
Kód: [Vybrat]
*/16 * * * * /cesta/ke/skript
A tu několikanásobnou "kontrolu" po 5ti minutách ošetříš v tom skriptu.
To pětiminutové "čekání" zařídíš řádkem
Kód: [Vybrat]
sleep 300(5min=300s)

A pak tam napíšeš ten příkaz pro kontrolu znova, dáš zase 5min pauzu a napíšeš příkaz potřetí, tentokrát s "výstupem" na to vypnutí (poweroff).
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 08 Červenec 2019, 17:28:07
Uvedené riešenie od juwa2 nieje špatné, je jednoduché a môže aj vyhovieť, ale ja by som to riešil trocha inak. Skriptom by som počítal priemernú hodnotu s najnižšou periódou aká sa dá dosiahnuť cez cron a až od tejto hodnoty by som nastavil závislosť na nejakej akcii, napríklad poweroff.
To preto, lebo hodnoty tých čítačov predstavujú okamžité hodnoty a pri nich je možné sa pri odpočte trafiť na minimálne hodnoty aj keď hardware pracuje naplno. Práve preto si prišiel na to, že potrebuješ viac krát za sebou spúšťať skript aby ti vypol počítač.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 09 Červenec 2019, 22:01:30
tak jsem rozběhl Cron a script

ještě ale než se pusím do samotného vypínání, chtěl jsem si úspěšnost scriptu otestovat zápisem do souboru
ale nefunguje to podle mých představ .... do souboru se zapíše jen prázdný řádek, bez hodnoty
spustím-li ale script z terminálu, tak se hodnota zapíše
co je špatně ???
Kód: [Vybrat]
#!/bin/bash
GPU=$(exec nvidia-settings -tq [gpu:0]/GPUCoreTemp)
echo "${GPU} GPU Temp" >> /home/uzivatel/Install/Octane/Crontab/backup_tmp.log
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 09 Červenec 2019, 22:24:27
tak jsem rozběhl Cron a script

ještě ale než se pusím do samotného vypínání, chtěl jsem si úspěšnost scriptu otestovat zápisem do souboru
ale nefunguje to podle mých představ .... do souboru se zapíše jen prázdný řádek, bez hodnoty
spustím-li ale script z terminálu, tak se hodnota zapíše
co je špatně ???
Kód: [Vybrat]
#!/bin/bash
GPU=$(exec nvidia-settings -tq [gpu:0]/GPUCoreTemp)
echo "${GPU} GPU Temp" >> /home/uzivatel/Install/Octane/Crontab/backup_tmp.log

Takto:
Kód: [Vybrat]
#!/bin/bash
GPU=$(exec nvidia-settings -tq [gpu:0]/GPUCoreTemp)
echo $GPU >> $HOME/Install/Octane/Crontab/backup_tmp.log

nebo
Kód: [Vybrat]
#!/bin/bash
exec nvidia-settings -tq [gpu:0]/GPUCoreTemp >> $HOME/Install/Octane/Crontab/backup_tmp.log

Ale jinak fajn, snažíš se, proto ti pomáháme. 
Opatrnost je sice vždycky na místě  :), nicméně v tomto konkrétním případě mi to přijde celkem zbytečné (co horšího se může stát než že se (akorát) vypne PC....
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 10:11:31
Ale jinak fajn, snažíš se, proto ti pomáháme.

Díky za pochvalu  :) Inu snažím se, když už se v tom hrabu, nejen slepě okopírovat kód, ale i trochu pochopit oč se v něm jedná. A pak to případně mít pro další použití.

Např. je zajímavé, že všude kde jsem gůůglil uváděli
Kód: [Vybrat]
echo ${PROMENNA} nebo
Kód: [Vybrat]
echo "$PROMENNA" ... respektive těch variací zápisů bylo spousta.

U tvého příkladu asi již chápu, že když chci vypsat číselnou proměnnou a ne textový řetězec, pak "" jsou zbytečné.

A pak proč ve tvém kódu pro vypnutí je použito ${GPU} a ne jen $GPU, tak jak je to u echo ???

Co bych ještě rád pochopil je, rozdíl mezi mým /home a tvým  $HOME ? ??? .... ale asi je to jen zkrácení zápisu cesty /home/uzivatel/  ???

Přesto musím mít někde chyb ... asi ne ve scriptu .... protože z terminálu bash test_Cron.sh to vypisuje správně.
Ale nechám-li výpis na "automatizaci" Cronem, tak se v souboru neobjevuje číselná hodnota, ale prázdný řádek.  :-[

(co horšího se může stát než že se (akorát) vypne PC
Jen to, že jej budu muset znovu a znovu nahazovat .... a i když má "jen" dvě 780TI, tak na něm v současné době provozuji výpočty. Takže chci mít nejprve kontrolu logu, než to pustím do ostrého provozu.  8)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: TIBOR 10 Červenec 2019, 10:25:57
Napr. tu mas vypisane systemove premenne aj s tym $HOME
https://www.linuxexpres.cz/praxe/bash-5-dil-1
Mozes si ich vyskusat a pochopis co to je.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 11:42:13
zkusím nastudovat :)

a nějaké vysvětlení proč bash z terminálu hodnotu do souboru zapíše a script spuštěný přes Cron nikoliv ?

ne že by to asi mělo pro výsledek "vypínání PC" vliv, pokud si bude schopen správně převzít od nvidia-settings hodnotu, ale spíše ze zvídavosti
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 10 Červenec 2019, 12:28:17
Spusť si ten skript ručně (dvojklikem).  Pokud hodnotu do souboru zapíše, není žádný důvod aby neudělal totéž při spuštění cronem...
Spíše bych řekl, že ta úloha se vůbec nespustí (máš to v cronu zadáno blbě). Popiš jak to do cronu zadáváš, nebo sem dej výpis
Kód: [Vybrat]
crontab -l
Jinak jestli se úloha spustila nebo co se děje zjistíš v souboru
Kód: [Vybrat]
/var/log/syslog
Orientuj se dle času. Najdeš tam kdy se cron úloha spustila a s jakým výsledkem.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 13:36:34
v Crontab mám
Kód: [Vybrat]
*/1 * * * * /home/uzivatel/Install/Octane/Crontab/test_Cron.sh
poslední, resp. první řádky v syslog
 
Kód: [Vybrat]
Jul 10 00:06:53 Ubuntu anacron[2201]: Job `cron.daily' terminated
Jul 10 00:06:53 Ubuntu anacron[2201]: Normal exit (1 job run)
Jul 10 00:07:01 Ubuntu CRON[11054]: (uzivatel) CMD (/home/uzivatel/Install/Octane/Crontab/test_Cron.sh)
Jul 10 00:07:01 Ubuntu CRON[11052]: (CRON) info (No MTA installed, discarding output)

dvojklik mi test_Cron.sh otevře v textovém editoru, proto jej spouštím ručně přes terminál
Kód: [Vybrat]
bash test_Cron.shsamozřejmě terminál mám v konkrétním adresáři
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 10 Červenec 2019, 14:20:05
Script spustený pomocou cronu môže mať definované iné environment premenné, napríklad PATH (ale aj iné).
Daj si do toho skriptu niekde na začiatok:
env >> ~/environment.txt
echo >> ~/environment.txt
Spusti ten skritp z terminálu a následne pomocou cronu. Mal by si vidieť nejaké rozdiely. Súbor ktorý to vytvorí bude v domácom adresári užívateľa.

Pri písaní skriptov je vhodné nadefinovať príkazy do premenných pomocou prikazu 'which'.
príklad:
CMD_SLEEP=`which sleep 2>/dev/null`
Po vykonaní nadobudne premenná CMD_SLEEP samotný príkaz sleep včítane kompletnej cesty k nemu a bude vyzerať nejak takto: /usr/bin/sleep
Pre použitie príkazu v scripte potom stačí písať: $CMD_SLEEP
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 10 Červenec 2019, 15:07:36
v Crontab mám
Kód: [Vybrat]
*/1 * * * * /home/uzivatel/Install/Octane/Crontab/test_Cron.sh
poslední, resp. první řádky v syslog
 
Kód: [Vybrat]
Jul 10 00:06:53 Ubuntu anacron[2201]: Job `cron.daily' terminated
Jul 10 00:06:53 Ubuntu anacron[2201]: Normal exit (1 job run)
Jul 10 00:07:01 Ubuntu CRON[11054]: (uzivatel) CMD (/home/uzivatel/Install/Octane/Crontab/test_Cron.sh)
Jul 10 00:07:01 Ubuntu CRON[11052]: (CRON) info (No MTA installed, discarding output)

dvojklik mi test_Cron.sh otevře v textovém editoru, proto jej spouštím ručně přes terminál
Kód: [Vybrat]
bash test_Cron.shsamozřejmě terminál mám v konkrétním adresáři

Proč máš v cestě toho skriptu "uzivatel"?  Ty máš účet s názvem "uzivatel"??  :o
Uveď to do pořádku.  Nebo tam napiš ~ nebo $HOME

A vypadá to, že ten tvůj skript nemá nastavenou spustitelnost. Proto ho cron pochopitelně nespustí.  Napravíš to příkazem:
Kód: [Vybrat]
chmod a+x ~/Install/Octane/Crontab/test_Cron.sh
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 15:50:21
SPUSTITELNOST  8)
toť ta věc na kterou si v Linuxu nemohu zvyknout :D
a v mnohých návodech jí berou jako samozřejmost, takže jí ani neuvádějí  :-\

I tak to do logu při spuštění Cronem vypisuje prázdný řádek  :-\

Script spustený pomocou cronu môže mať definované iné environment premenné, napríklad PATH (ale aj iné).
Daj si do toho skriptu niekde na začiatok:
env >> ~/environment.txt
echo >> ~/environment.txt
Spusti ten skritp z terminálu a následne pomocou cronu. Mal by si vidieť nejaké rozdiely. Súbor ktorý to vytvorí bude v domácom adresári užívateľa.

Rozdíly tam jsou, například PWD, SHELL, PATH, SHLVL.
z Cronu
Kód: [Vybrat]
LANG=cs_CZ.UTF-8
PWD=/home/uzivatel
HOME=/home/uzivatel
SHELL=/bin/sh
SHLVL=1
LOGNAME=uzivatel
PATH=/usr/bin:/bin
_=/usr/bin/env
Při výpisu z terminálu to vypsalo mnohem více hodnot.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 16:01:19
Asi v tom bude pěknej guláš :) ale zkusím to sem hodit, třeba to někoho trkne. Současný stav je

test_Cron.sh
Kód: [Vybrat]
#!/bin/bash
GPUtemp=$(exec nvidia-settings -tq [gpu:0]/GPUCoreTemp -t)
GPUload=$(exec nvidia-settings -tq [gpu:0]/GPUUtilization | awk -F '[,= ]' '{ print $2 }')
env >> ~/environment.txt
echo >> ~/environment.txt
echo "Temp" $GPUtemp >> $HOME/Install/Octane/Crontab/backup_tmp.log
echo "Load" $GPUload >> $HOME/Install/Octane/Crontab/backup_tmp.log
exec nvidia-settings -tq [gpu:0]/GPUCoreTemp >> $HOME/Install/Octane/Crontab/backup_tmp.log

Výsledný obsah backup_tmp.log
Kód: [Vybrat]
Temp 82
Load 98
82
Temp
Load
Temp
Load
Temp
Load

první tři řádky jsou po spuštění z terminálu, další řádky už z Cronu ... je vidět ,že číselné hodnoty prostě ignoruje
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 10 Červenec 2019, 16:21:17
Včera v 22:24:27 jsem ti psal jak mají ty příkazy vypadat a ty tam zase píšeš nesmysly.... :-\

Kód: [Vybrat]
#!/bin/bash
GPUtemp=$(exec nvidia-settings -tq [gpu:0]/GPUCoreTemp -t)
GPUload=$(exec nvidia-settings -tq [gpu:0]/GPUUtilization | awk -F '[,= ]' '{ print $2 }')

echo $GPUtemp >> $HOME/Install/Octane/Crontab/backup_tmp.log
echo $GPUload >> $HOME/Install/Octane/Crontab/backup_tmp.log

A pokud skript samostatně funguje, není žádný důvod aby nefungoval přes cron - teď jsem to schválně zkoušel....
Tomu scriptu je totiž jedno kdo nebo co ho spouští...

Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 10 Červenec 2019, 16:32:20
Súbor environment.txt sa ti vytvoril na disku v domácom adresári. Bolo by dobré keby si vizuálne porovnal hodnoty, ktoré sa do neho zapísali. Všímaj si hlavne premennú PATH.
To preto, lebo spúšťaš program nvidia-settings, ale neuvádzaš k nemu kompletnú cestu. Bez kompletnej cesty je dôležitá premenná PATH aby príkaz exec vedel ten program nvidia-settings vôbec nájsť.
Ak sa ti s tým nechce babrať, tak si doplň celú cestu k programu nvidia-setting do toho skriptu.
Ak je to len táto jedna chyba, tak by ti to malo po doplnení komplentej cesty fungovať.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 16:55:33
Včera v 22:24:27 jsem ti psal jak mají ty příkazy vypadat a ty tam zase píšeš nesmysly.... :-\

Kód: [Vybrat]
#!/bin/bash
GPUtemp=$(exec nvidia-settings -tq [gpu:0]/GPUCoreTemp -t)
GPUload=$(exec nvidia-settings -tq [gpu:0]/GPUUtilization | awk -F '[,= ]' '{ print $2 }')

echo $GPUtemp >> $HOME/Install/Octane/Crontab/backup_tmp.log
echo $GPUload >> $HOME/Install/Octane/Crontab/backup_tmp.log

A pokud skript samostatně funguje, není žádný důvod aby nefungoval přes cron - teď jsem to schválně zkoušel....
Tomu scriptu je totiž jedno kdo nebo co ho spouští...

však jsem to převzal ..... momentálně tam mám přidán jen textový řetězec .. to je špatně? I když jsem jej tam včera večer neměl, tak to hodnotu nevypisovalo. Text jsem tam přidal, abych viděl, že daný řádek byl proveden. Je, ale bez hodnoty.

Súbor environment.txt sa ti vytvoril na disku v domácom adresári. Bolo by dobré keby si vizuálne porovnal hodnoty, ktoré sa do neho zapísali. Všímaj si hlavne premennú PATH.
Soubor jsem našel  ;) PATH se opravdu liší, i jiné položky, viz 15:50. Zkusím tu plnou cestu k nvidia-settings ( /usr/bin/nvidia-settings )
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 10 Červenec 2019, 20:30:56
PATHem se nezabývej. Pokud by daná aplikace nebyla v PATH, nefungoval by ani ten skript (nebo příkaz v Terminálu).
Samozřejmě, pokud do příkazu napíšeš celou cestu k aplikaci (nvidia-settings), ničemu to neublíží....
Ale výsledek bude stejný.
-----------------------------------
A proč ti to přes cron nefunguje? Třeba máš nějak nabořený systém, kdo ví.....
A jak už jsem napsal, pokud skript funguje při ručním spuštění, není sebemenší důvod proč by neměl fungovat při spuštění cronem.
Mě přes cron fungují skripty bez problému. Všechny.
Jediné co mě napadá je, že bys to mohl zkusit spouštět přes rootovský cron:
Kód: [Vybrat]
sudo crontab -e
Zkus to.....
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 21:09:02
tak jsem to musel upravit na
Kód: [Vybrat]
sudo EDITOR=nano crontab -eprotože při prvním pokusu o cronetab -e jsem si zvolil nějaký debilní editor
každopádně výsledek je ten, že pod touhle tabulkou mi to nejede ...nic do backup_tmp.log se nazapíše

system nabořený doufám že ne ... je to čistá instalace ... nvidia drivers 430, nvidia CUDA, x11VNC, Conky, Blender, Chrome ....... nic víc :/
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 10 Červenec 2019, 21:20:47
Samozřejmě jako editor crontabu je dobré si nastavit místo defaultního vim nano. Práce s nano je přehlednější...
A abys nemusel pokaždé do příkazů zadávat "EDITOR=nano", přepni si to definitivně:
Kód: [Vybrat]
sudo update-alternatives --config editor

a vyber jednu z možností (nano).

Proč ti to neustále nefunguje netuším - není pro to sebemenší důvod pokud skript samotný funguje -  viz výše....
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 10 Červenec 2019, 21:28:51
A abys nemusel pokaždé do příkazů zadávat "EDITOR=nano", přepni si to definitivně:

super, jdu na to :)

Proč ti to neustále nefunguje netuším - není pro to sebemenší důvod pokud skript samotný funguje -  viz výše....

Nj, také mi z toho hlava nebere. Ještě zkusím rozhodit sítě jinde ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 10 Červenec 2019, 23:39:22
=> PATHem se nezabývej...
Dovolil by som si nesúhlasiť. PATH je nastavená inak pri vykonávaní príkazov z CRON-u. Na rovnaký problém sa dá naraziť pri vykonávaní príkazov cez sudo. V sudoers je uvedená PATH nazvaná 'secure_path'. Je potrebné si pozrieť výpis environmentu pri spustení z CRONu či obsahuje potrebnú cestu. Ja mám napríklad všetky scripty, ktoré som doteraz vytvoril v adresári /opt/sys. Aby som ich mohol spúšťať odkiaľkoľvek musel som PATH upraviť po prihlásení sa do účtu.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 11 Červenec 2019, 10:45:39
=> PATHem se nezabývej...
Dovolil by som si nesúhlasiť.
Asi na tom něco bude. Dneska ráno při rozbřesku slunce a mysli mne napadlo, že když se spustí skript přes terminál, tak zná cestu k nvidia-settings, ale přes Cron jí znát nemusí a tím pádem nemá kde získat hodnotu pro proměnou a vyhodí do souboru prázdný řádek.
Potíž je, že i když jsem tam zkusil dát úplnou cestu k nvidia-settings (usr/bin/nvidia-settings) tak to neprovedlo.

Ještě mne napadlo že do testu zahrnu výpis nějaké hodnoty z nvidia-smi. Třeba číslo ovladače nVidia.
A světe div se, zapisuje to !!!
Bohužel pro kýžený cíl SMI nemá na současném sestavení grafik podporu všech čidel ... hlavně právě GPUUtilization - hodnota je N/A. Pak to jedině řešit jinou cestou - sledováním teploty, rychlost větráků,....... na výběr toho je poměrně dost https://briot-jerome.developpez.com/fichiers/blog/nvidia-smi/list.txt (https://briot-jerome.developpez.com/fichiers/blog/nvidia-smi/list.txt). A přes Conky si to mohu viditelně ověřit, zda je hodnota sledovatelná na mých kartách.

Je to na palici .... to co dovede Conky nedovede Cron :D

@WEST Schválně ti přidávám výpisy v environment.txt

Z terminálu:
Kód: [Vybrat]
CLUTTER_IM_MODULE=xim
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LESSCLOSE=/usr/bin/lesspipe %s %s
XDG_MENU_PREFIX=gnome-
_=/usr/bin/env
LANG=cs_CZ.UTF-8
MANAGERPID=1007
DISPLAY=:0
INVOCATION_ID=235572bdad1c4f8886f2bea7417b99ab
GNOME_SHELL_SESSION_MODE=ubuntu
COLORTERM=truecolor
USERNAME=uzivatel
XDG_VTNR=1
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
XDG_SESSION_ID=1
USER=uzivatel
DESKTOP_SESSION=ubuntu
QT4_IM_MODULE=xim
TEXTDOMAINDIR=/usr/share/locale/
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/a4a8eaac_b82b_4eb2_a3e0_18a23cf56669
PWD=/home/uzivatel/Install/Octane/Crontab
HOME=/home/uzivatel
JOURNAL_STREAM=9:24961
TEXTDOMAIN=im-config
SSH_AGENT_PID=1190
QT_ACCESSIBILITY=1
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
XDG_SESSION_DESKTOP=ubuntu
DBUS_STARTER_ADDRESS=unix:path=/run/user/1000/bus,guid=62781204859d3ca3478c8fee5d25e4f1
GTK_MODULES=gail:atk-bridge
WINDOWPATH=1
VTE_VERSION=5202
SHELL=/bin/bash
TERM=xterm-256color
QT_IM_MODULE=xim
XMODIFIERS=@im=ibus
IM_CONFIG_PHASE=2
DBUS_STARTER_BUS_TYPE=session
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.72
SHLVL=2
XDG_SEAT=seat0
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=uzivatel
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus,guid=62781204859d3ca3478c8fee5d25e4f1
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
PATH=/home/uzivatel/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
SESSION_MANAGER=local/Ubuntu:@/tmp/.ICE-unix/1095,unix/Ubuntu:/tmp/.ICE-unix/1095
LESSOPEN=| /usr/bin/lesspipe %s
GTK_IM_MODULE=ibus

a z Cron-u vypadne jen takovýto krátký výpis
Kód: [Vybrat]
LANG=cs_CZ.UTF-8
PWD=/home/uzivatel
HOME=/home/uzivatel
SHELL=/bin/sh
SHLVL=1
LOGNAME=uzivatel
PATH=/usr/bin:/bin
_=/usr/bin/env
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 11 Červenec 2019, 14:06:23
Výpis z Cron-u hovorí, že cestu /usr/bin potrebnú pre nvidia-settings obsahuje, tudíž chybu bude treba hľadať niekde inde.  Za pokus stojí zmena env premennej SHELL na /bin/bash, tak ako to máš vo výpise z terminálu. Na začiatku skriptu, ešte pred vykonávaním nvidia-settings by som dal:
env -u SHELL
env SHELL /bin/bash
Ale stretol som sa napríklad aj s tým, že niektoré programy nefungujú správne ak nebežia v termináli, chýba im obsah toho, čo vyhodí príkaz tty, alebo env premenná DISPLAY.

Pre začiatok by bolo múdre naštudovať ako narábať s nvidia-settings
https://manpages.ubuntu.com/manpages/precise/man1/alt-nvidia-current-updates-settings.1.html
Je tam niečo ako rozšírený výpis chýb (verbose), vyskúšal by som ho použiť, ovšem keď som to čítal ďalej a dostal som sa k --ctrl-display=CTRL-DISPLAY a -a, --assign=ASSIGN, tak som skôr toho názoru, že to ten terminál naozaj potrebuje. Doporučoval by som však opýtať sa niekoho, kto nvidia-settings bežne na Linuxe používa či tam neeistuje nejaký fígeľ.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 11 Červenec 2019, 14:52:54
Výpis z Cron-u hovorí, že cestu /usr/bin potrebnú pre nvidia-settings obsahuje, tudíž chybu bude treba hľadať niekde inde.  Za pokus stojí zmena env premennej SHELL na /bin/bash, tak ako to máš vo výpise z terminálu. Na začiatku skriptu, ešte pred vykonávaním nvidia-settings by som dal:
env -u SHELL
env SHELL /bin/bash
Ale stretol som sa napríklad aj s tým, že niektoré programy nefungujú správne ak nebežia v termináli, chýba im obsah toho, čo vyhodí príkaz tty, alebo env premenná DISPLAY.

Pre začiatok by bolo múdre naštudovať ako narábať s nvidia-settings
https://manpages.ubuntu.com/manpages/precise/man1/alt-nvidia-current-updates-settings.1.html
Je tam niečo ako rozšírený výpis chýb (verbose), vyskúšal by som ho použiť, ovšem keď som to čítal ďalej a dostal som sa k --ctrl-display=CTRL-DISPLAY a -a, --assign=ASSIGN, tak som skôr toho názoru, že to ten terminál naozaj potrebuje. Doporučoval by som však opýtať sa niekoho, kto nvidia-settings bežne na Linuxe používa či tam neeistuje nejaký fígeľ.

Už jsem mu psal, že nemá ten skript spouštět v Terminále, ale spustit ho dvojklikem. A zjistit zda funguje.
Pokud ano, musí fungovat i pokud je spuštěn cronem. Protože po spuštění skriptu se pouze provedou příkazy v něm - cron už s tím nemá nic...
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 11 Červenec 2019, 15:00:28
@WEST

také tu stránku mám otevřenou .... zjišťuji třeba možnost jestli se dá přepnout nějak typ výpis hodnoty (laicky = z numerické převést na textový řetězec)

Ale čímdále se kloním k variantě jít přes nvidia-smi .... ač zatím u mých karet neumí číst Utilization ... tak se probíhající výpočet pro vypnutí PC dá vysledovat i jinými parmetry.
A v budoucnu jestli se dočkám upgrade, třeba na 10-tkovou řadu, nebo nedejbožže na RTXa, tak už by mohl umět číst i tento parametr.

Už jsem mu psal, že nemá ten skript spouštět v Terminále, ale spustit ho dvojklikem. A zjistit zda funguje.
A já jsem odpovídal, že dvojklikem mi otvírá .sh v Textovém editoru  :-[ .... nastavení spustitelnosti jsem také provedl, ale dvojklik stále jede při starém

PS: lze nějak zadat, aby ECHO vypsal na konec souboru ale začátek ?  ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 11 Červenec 2019, 15:29:46
1.) Co se bude dít po dvojkliku na spustitelný soubor se nastavuje v nastavení správce souborů. Možnosti jsou tam tři:
zobrazit obsah
spustit
zeptat se co udělat (zobrazit obsah, spustit nebo spustit v terminálu)
Takže si to přepni.

2.) echo >> vypisuje pouze na konec souboru
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 11 Červenec 2019, 15:33:41
1.) Co se bude dít po dvojkliku na spustitelný soubor se nastavuje v nastavení správce souborů. Možnosti jsou tam tři:
zobrazit obsah
spustit
zeptat se co udělat (zobrazit obsah, spustit nebo spustit v terminálu)
Takže si to přepni.

mám to ;) ... jsem přeci jenom LAMA, takže mi trvalo, než jsem našel menu Předvolby pro Nautilus :D - když je "nahoře" v doku

EDIT: Ok, spuštěno dvojklikem .... zápis do souboru probíhá v pořádku i s hodnotou  ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 12 Červenec 2019, 13:27:45
Tak vše je relativně funkční, včetně vypnutí ... ale jen pokud skript pustím přes terminál nebo dvojklikem!
Z Cronu prostě i nadále odmítá. Zkusil jsem zaměnit nvidia-settings za nvidia-smi se sledováním rychlosti větráku. Tam funguje i výpis hodnot do logu přes Cron. Ale i když proběhne celý proces, tak na konci se PC nevypne.

Trochu to tu zahltím zase kódy. Třeba někdo bude mít ještě nějaký nápad, nebo odhalí mojí začátečnickou chybu. (již jsem si pozměnil názvy souborů)

PS: .... ano, uživatelské jméno mám "uzivatel"  :-X

1) Cron tabulka (cronetab -l)
Kód: [Vybrat]
*/5 * * * * /home/uzivatel/Install/Octane/Crontab/GPU-off.sh
2) script (včetně nastavení spustitelnosti), rozhodně by šel napsat úhledněji a pro zfuunkčnění z něj lecos ještě vyhážu :)
Kód: [Vybrat]
#!/bin/bash
echo "1) prvni overeni" >> $HOME/Install/Octane/Crontab/GPU-off.log
GPU1=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=fan.speed)
echo $GPU1 >> $HOME/Install/Octane/Crontab/GPU-off.log

if [[ ${GPU1} -le 40 ]]; then
sleep 60
echo "2) druheee overeni" >> $HOME/Install/Octane/Crontab/GPU-off.log
GPU2=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=fan.speed)
echo $GPU2 >> $HOME/Install/Octane/Crontab/GPU-off.log
if [[ ${GPU2} -le 40 ]]; then
sleep 60
echo "3) VYPNUTI" >> $HOME/Install/Octane/Crontab/GPU-off.log
GPU3=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=fan.speed)
echo $GPU3 >> $HOME/Install/Octane/Crontab/GPU-off.log
if [[ ${GPU3} -le 40 ]]; then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:false
fi
fi
fi

... všechno proběhne .... uusuzji z toho, že postupně dochází k výpisům do logu. Kdyby nebyl schopen vzít hodnotu pro fan.speed, tak by skončil prvním výpisem a ten by se stále opakoval, tak jak by Cron spouštěl script po 5min. Ale po výpisu do logu VYPNUTI stejně nedojde k vypnutí PC.

zkoušel jsem dát i řádek
Kód: [Vybrat]
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:false
jo a v /var/log/syslog je tohle
Kód: [Vybrat]
Jul 12 13:15:01 Ubuntu CRON[16400]: (uzivatel) CMD (/home/uzivatel/Install/Octane/Crontab/GPU-off.sh)
Jul 12 13:17:01 Ubuntu CRON[19916]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 13:17:01 Ubuntu CRON[16399]: (CRON) info (No MTA installed, discarding output)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 12 Červenec 2019, 14:27:30
1.) Ten příkaz pro vypnutí ti (samostatně, v terminálu) funguje?  Můžeš tam dát poweroff
Nebo aby se ti při testování pořád PC nevypínal, můžeš to testovat se suspend, PC se jen uspí do RAM:
Kód: [Vybrat]
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.Suspend boolean:false
Nicméně celé ty příkazy pro vypnutí bych dával do uvozovek - to je možná příčina proč se to nevypne....

2.) Problém s nefunkčností přes cron zkus vyřešit pomocným skriptem ve kterém bude jako příkaz:
Kód: [Vybrat]
/home/uzivatel/Install/Octane/Crontab/GPU-off.sh
A cronem spouštěj tento pomocný skript. Třeba to "zabere".
Ale osobně si stejně myslím, že máš nějaký bug v systému, není důvod aby funkční skript nefungoval při spuštění cronem, sám jsem to schválně zkoušel....
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 12 Červenec 2019, 14:53:08
1.) Ten příkaz pro vypnutí ti (samostatně, v terminálu) funguje?  Můžeš tam dát poweroff
Nebo aby se ti při testování pořád PC nevypínal

poweroff v terminálu okamžitě vypne PC bez jakýchkoliv cavyků :)

Zkusím tam dát ještě ty uvozovky  ;)


2.) Problém s nefunkčností přes cron zkus vyřešit pomocným skriptem ve kterém bude jako příkaz

chápu-li to správně, tak Cronem spustit jednořádkový skript který spustí můj script ?

No něco s tím systémem asi opravdu bude, ale otázka čím se to mohlo stát.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 12 Červenec 2019, 16:38:32
=>  není důvod aby funkční skript nefungoval při spuštění cronem, sám jsem to schválně zkoušel....
Bolo by dobré uviesť na pravú mieru čo si v tom skripte mal napísané.
Ide o to či si tam mal rovnaký text ako má tazateľ s tým nvidia-settings.
Verím, že aj tazateľ by nemal problém so skriptom spustenýcm z Cron-u ak by z toho skriptu odstránil riadky kde je nvidia-settings.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 12 Červenec 2019, 20:49:01
@WEST
Máš to volaké popletené. Já jsem tazatel. Vzorec skriptu mi dal JUWA2, ale současný celý script máš ode mne o kus výše.
Měl jsem dva problémy.
1. nvidia-settings = po spuštěním Cronem se do logu nevypisovaly hodnoty, použil jsem nvidia-smi a hodnoty se vypisují. tím pádem si mohu být jist, že jsou správně převzaty do proměnné.

2. spuštění "koncového" příkazu ve skriptu = spustím li skript jinou cestou než Cronem, pak vše projde hladce na 100%, nechám-li script projít přes Cron, tak poslední příkaz, a je jedno jestli tam je shutdown; poweroff, blender, gedit, zkoušel jsem různé, nic z toho se nespustí, ani se "sudo"

Odstranit řádky s nvidia-settings, ty už jsou. A když odstraním nvidia -smi, tak jak mám pak získávat hodnoty pro splnění podmínky? "když není zatížená grafická karty, tak vypni počítač"
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 12 Červenec 2019, 21:10:13
Zkoušels ten "pomocný" skript?  Stejný můžeš použít pro příkaz který se neprovede (do svého skriptu místo toho příkazu napíšeš cestu k pomocnému skriptu který obsahuje ten příkaz).
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 12 Červenec 2019, 21:36:45
Viem, že si tazateľ. Len sa mi nechcelo robiť CNTR-C -> CNTR-V tvojho nicku.
Pre bod 2.) výpis správy do logu pomocou echo ti z Cron-u funguje.
gedit z cronu fungovať nemôže, nemá okno do ktorého vykresluje grafiku. Mne to do logu vypíše CMDOUT (Cannot open display: )
Pozri si čo sa v systéme Cron-om spúšťa a ako to vyzerá. (cron.hourly, cron.daily ... etc). Možno prídeš na to, že v tých skriptoch sú len systémové príkazy, alebo iné skripty v ktorých sú zase len príkazy. echo je príkaz, preto funguje.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 12 Červenec 2019, 21:51:21
Jo a to prečo nejde posledný príkaz môže byť spôsobené tým, že to na tom predchádzajúcom vytuhne, alebo sa ukončí bez toho aby odovzdal riadenie naspäť do shell-u.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 13 Červenec 2019, 00:30:49
Viem, že si tazateľ. Len sa mi nechcelo robiť CNTR-C -> CNTR-V tvojho nicku.
Pre bod 2.) výpis správy do logu pomocou echo ti z Cron-u funguje.
gedit z cronu fungovať nemôže, nemá okno do ktorého vykresluje grafiku. Mne to do logu vypíše CMDOUT (Cannot open display: )
Pozri si čo sa v systéme Cron-om spúšťa a ako to vyzerá. (cron.hourly, cron.daily ... etc). Možno prídeš na to, že v tých skriptoch sú len systémové príkazy, alebo iné skripty v ktorých sú zase len príkazy. echo je príkaz, preto funguje.

Gedit a další GUI aplikace samozřejmě z cronu fungují, akorát je to potřeba v příkazu ošetřit:
Kód: [Vybrat]
* * * * * DISPLAY=:0 gedit
Toto řešení ale funguje pouze při zadání příkazu přímo do crontabu, nikoli ve skriptech spouštěných cronem.

Aby tedy bylo možné spouštět GUI aplikace cronem pomocí skriptu, je třeba (do skriptu) před vlastní příkaz vložit:
Kód: [Vybrat]
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"

Takže celý skript pak bude např.
Kód: [Vybrat]
#!/bin/bash
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"
gedit
notify-send "gedit je spuštěný" "`date +%H:%M`" -t 20000 -i face-laugh

Stejný postup platí i pro rootovský cron.



Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 13 Červenec 2019, 11:01:56
Zkoušels ten "pomocný" skript?
Přiznám se, že to jsem ještě nezkusil. Nějak jsem se mi nedostávalo času. Ale dneska bych na to rád skočil.

Ještě mne pak napadlo vyzkoušet si ten skript na jiném PC, kde mi běží čisté Ubuntu jen s x11vnc a Vlc playerem (mediální stanice). Jen budu muset vystrachat nějakou funkci ala nvidia-smí, ale pro Intel. Respektive prostě řádky se SMI něčím nahradit, pro if/then.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 13 Červenec 2019, 11:48:06
To je síce fajn, že ide spusť aj gedit, akurát je v tom taký malý háčik. GUI aplikácie zvyčajne predpokladajú interakciu užívateľa. Zbytočne budem Crono-m otvárať grafický editor, keď v ňom z Cronu nespravím ani čiarku.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 13 Červenec 2019, 13:13:43
@West
Tady nejde o to jestli spustím třeba Blender a budu v něm cosi dělat. Ale o to jestli mi jde vůbec něco spustit externě mimo Bash. Respektive najít vysvětlení, proč se nechce spustit "poweroff" , když u JUWA2 to normálně funguje.

@JUWA2
Blbej dotaz. když budu chtít spustit skript ve skriptu, je na to nějaká speciální syntaxe (příkaz) nebo prostě napíšu skript s plnou cestou ?
Kód: [Vybrat]
$HOME/Install/Octane/Crontab/vypinac.sh
EDIT: OK zkusil jsem to v této syntaxi a NIC

Ještě mne napadlo. Co ten/ty skripty přesunout někam jinam ? Který umístění by pro ně bylo vhodné?
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 13 Červenec 2019, 13:55:38
Syntaxi máš správnou. Přesun jinam nic neřeší.
Zkus do toho svého skriptu GPU-off.sh dát řádek
Kód: [Vybrat]
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"
Pokud máš jiné prostředí jak gnome, tak to tam změň (gnome-session --> mate-session atd.).
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 13 Červenec 2019, 14:26:49
=> Respektive najít vysvětlení, proč se nechce spustit "poweroff" , když u JUWA2 to normálně funguje...
Tipujem, že keď napíšeš do skriptu iba ten jeden príkaz poweroff, tak bude fungovať aj tebe. Nejdem ťa ovšem presviedčať aby si to vyskúšal. To nieje tvojim cieľom.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 13 Červenec 2019, 15:01:39
Tipujem, že keď napíšeš do skriptu iba ten jeden príkaz poweroff, tak bude fungovať aj tebe. Nejdem ťa ovšem presviedčať aby si to vyskúšal. To nieje tvojim cieľom.
Naopak, je to mým cílem. Vypnout PC po dokončení sekvence. Ale ono to NEJDE. Respektive, a opakuji se znovu, při spuštění dvojklikem nebo v terminálu se vypne. Spustí li se script přes událost v Crontab, tak k vypnutí nedojde.

Napadá mne, existuje něco jiného než Cron na vytváření událostí? Že bych vyzkoušel i tuto cestu.

@JUWA2 ... jak zase budu mít příležitost, tak to zkusím ... hádám že mám GNOME :)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 13 Červenec 2019, 15:19:56
Daj si tú prácu a vytvor si druhý skript v ktorom si odskúšaš funkciu automatického vypnutia skriptom spusteným z Cron-u. Ak to nejde všetko naraz, treba ísť krok po kroku.
Neviem ako u teba, ale ja mám prikaz poweroff v umiestnení /sbin/poweroff, tudíž nestačí do toho skriptu napísať iba poweroff, ale treba to napísať s absolútnou cestou. Okrem toho myslím, že z Cron-u môže vypnúť počítač iba root. To bude potom pred ten príkaz dať ešte sudo a v sudoers nadefinovať oprávnenie pre spustenie poweroff pre konkrétneho užívateľa a rovnež by sa tam mali pridať oprávnenia pre spustenie toho konkrétneho skriptu v ktorom sú príkazy, ktoré vyžadujú root-a.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: TIBOR 13 Červenec 2019, 15:46:23
Napadá mne, existuje něco jiného než Cron na vytváření událostí? Že bych vyzkoušel i tuto cestu.
V skripte vytvorit nekonecnu slucku v ktorej budu tie tvoje prikazy a prerusovat jej chod pomocou sleep. Toto si neskusal? Skript spustat pri starte systemu.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 13 Červenec 2019, 16:31:36
Napadá mne, existuje něco jiného než Cron na vytváření událostí? Že bych vyzkoušel i tuto cestu.

Ano, existuje fcron (sám používám). http://fcron.free.fr/ Obsahuje oproti normálnímu cronu spousty užitečných možností (např. řeší situaci kdy není PC v době naplánované úlohy zrovna zapnutý). Fcron je potřeba si zkompilovat/nainstalovat ze zdrojáku, naštestí to není obtížné + nastavit autospouštění fcron-daemona.
Postup instalace je např. tu: http://www.linuxfromscratch.org/blfs/view/8.0/general/fcron.html nebo https://ubuntuforums.org/showthread.php?t=2057486
Úlohy do Fcronu se nastavují obdobně jako u cronu (příkazem fcrontab -e). V /etc/fcron.conf  je dobré si změnit defaultní editor na nano (/bin/nano).
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nicméně ještě určitě zkus co navrhuje Tibor - dej na konec skriptu GPU-off.sh  5 min pauzu a pak tam napiš cestu k tomuto skriptu (= skript se spustí znova od začátku):
Kód: [Vybrat]
sleep 300
/home/uzivatel/Install/Octane/Crontab/GPU-off.sh

Dopsáním těchto dvou řádků obejdeš nutnost spouštění skriptu cronem. Skriptu nastav autospouštění po přihlášení.
----
Po přihlášení se skript spustí a pak už vše pojede (ve smyčce) samo, i bez cronu... ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 13 Červenec 2019, 21:32:07
jo ...smyčka, to zní nadějně ....... pro začátek to zkusím 

fcron ... vypadá to také nadějně .. kdybych to svedl nainstalovat. Doufal jsem totiž že pomocí Cronu bych mohl script spouštět třeba i jen v určitou denní domu a nejenom v pětiminutové sekvenci.
např že by se spouštěl jen od 18:00 do 7:00 .... zajistil tak, aby PC neběželo zbytečně přes noc, ale přes den byl případně k dispozici bez toho aby se vypínal.

Ještě přidám poznatek z fóra ROOT:CZ
Citace
nicmene mas nejaky duvod PROC to poustit v user cronu a ne system cronu? tam by samozrejme poweroff bez sudo a bez nastaveni sudoers musel fungovat...

zkusil jsme ale podle JUWA2 tedy editovat tabulku přes sudo (jako system/root) .. bohužel i kdyý se v /var/log/syslog-u vidět, že došlo ke spuštění, tak nejeví známky jakékoliv funkčnosti == nezapisují se žádné hodnoty do mého logu.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 13 Červenec 2019, 22:00:24
Rootovským cronem má smysl spouštět pouze příkazy které obsahují "sudo" (nebo skripty s příkazy se "sudo").
Protože při jejich spuštění uživatelským cronem se pochopitelně nestane nic (příkaz nebo skript se nespustí).
Na všechny běžné příkazy stačí "obyčejný" cron.
A spouštět úlohu jen v určitém intervalu?  Žádný problém:
Kód: [Vybrat]
*/5 18-7 * * * příkaz(každých 5 minut mezi 18:00 a 7:00)  https://crontab.guru/
P.S. Víš, že ke cronu existuje grafické "klikátko"?  Viz obrázek.   ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 13 Červenec 2019, 23:01:42
=> Rootovským cronem má smysl spouštět pouze příkazy které obsahují "sudo" (nebo skripty s příkazy se "sudo"). Protože při jejich spuštění uživatelským cronem se pochopitelně nestane nic (příkaz nebo skript se nespustí).
Postupom, ktorý som opísal vyššie je možné spustiť príkazy obsahujúce sudo aj užívateľským Cron-om. Mám to tak spravené a poweroff funguje aj v užívateľskom Cron-e.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 13 Červenec 2019, 23:19:17
=> Rootovským cronem má smysl spouštět pouze příkazy které obsahují "sudo" (nebo skripty s příkazy se "sudo"). Protože při jejich spuštění uživatelským cronem se pochopitelně nestane nic (příkaz nebo skript se nespustí).
Postupom, ktorý som opísal vyššie je možné spustiť príkazy obsahujúce sudo aj užívateľským Cron-om. Mám to tak spravené a poweroff funguje aj v užívateľskom Cron-e.

Příkaz poweroff nevyžaduje sudo.
A i kdyby ho vyžadoval, je zde od toho rootovský cron. Workaround se sudoers sice funguje, ale je to jenom taková "nouzovka".
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 13 Červenec 2019, 23:48:28
=> Příkaz poweroff nevyžaduje sudo....
Z Cron-u sudo vyžaduje, samozrejme nevyžaduje ho vtedy, ak je ponížená bezpečnosť systému pre usera na ALL = ALL (spusti akýkoľvek príkaz). Ja teda nemám dojem, že sudoers je v tom systéme na ozdobu. Ak si to niekto myslí, tak nech si ho zo systému odstráni komplet.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 14 Červenec 2019, 13:24:47
Kvůli mě tu nemusíte být do půlnoci :)

Nevím jestli jsem to vše pobral, ale zkusil jsem si další test .... vybodl se na podmínky a prostě jsem použil jednoduchá script vypinac.sh s tímto zněním
Kód: [Vybrat]
#!/bin/bash
echo $(date +"%T") >> $HOME/Install/Octane/Crontab/vypinac.log
sudo poweroff
echo "........................................................" >> $HOME/Install/Octane/Crontab/vypinac.log
a upravil tabulku Crontab ... dal jsem script spustit po jedné minutě

stalo se toto ....... počítač se nevypnul !! a v log souboru je zapsán čas i tečky .... takže ani sudo poweroff, ani poweroff mi to prostě nebere.

Vím že jsme se o tom už tady bavili, někdo to tu navrhoval, zavést plnou cestu k příkazu poweroff. Tak jsem zkusil vyhledat v Nautilusu "poweroff" ... našlo jich to spoustu .... některé i s příznakem spustitelné. Ale když je zkouším Spustit, tak to stejně nic neudělá. Takže z toho mi plyne další dotaz .... jaká by měla být správná plná cesta k tomu správnému poweroff ?

ještě dovětek co mi poradili na root.cz
Citace
poweroff &>$HOME/Install/Octane/Crontab/poweroff.log
v logu poweroff je pak napsáno
Citace
Failed to set wall message, ignoring: Interactive authentication required.
Failed to power off system via logind: Interactive authentication required.
Failed to open /dev/initctl: Operace zamítnuta
Failed to talk to init daemon.
a někdy naopak vypíše
Citace
/home/uzivatel/Install/Octane/Crontab/vypinac.sh: řádek 3: poweroff: příkaz nenalezen

P.S. Víš, že ke cronu existuje grafické "klikátko"?  Viz obrázek.   ;)
To je můj šálek kávy ... GUI :) Kde ho najdu ? Asi to budu muset doinstalovat  :-\ Já jsem nic u sebe takového nenašel.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 14 Červenec 2019, 14:09:57
=> Příkaz poweroff nevyžaduje sudo....
Z Cron-u sudo vyžaduje, samozrejme nevyžaduje ho vtedy, ak je ponížená bezpečnosť systému pre usera na ALL = ALL (spusti akýkoľvek príkaz). Ja teda nemám dojem, že sudoers je v tom systéme na ozdobu. Ak si to niekto myslí, tak nech si ho zo systému odstráni komplet.
a co toto ??.. co mi poradili na root.cz
Citace
sudo visudo

a přidej si tam:
%sudo ALL = NOPASSWD: /sbin/shutdown, /sbin/poweroff, /sbin/halt, /sbin/reboot

VYŘEŠENO !!
viz k3dAR
nicmene mas nejaky duvod PROC to poustit v user cronu a ne system cronu? tam by samozrejme poweroff bez sudo a bez nastaveni sudoers musel fungovat...
zrušil jsem user crontab a zadal jsem úkol do sudo crontab
před poweroff ve skriptu jsem dal také sudo a už to maká !!!!
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: West 14 Červenec 2019, 15:33:57
To je v poriadku. Poradili ti dobre. Je docela múdre si naštudovať ako upravovovať oprávnenia pomocou sudoers, aby sa z Linuxu nestal Windows čo sa týka bezpečnosti.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 14 Červenec 2019, 20:08:17
no ale v jednu chvíli to byl hučák .... s přístupem přes AnyDesk z domu, a já trotl si aktivoval sudo Cron po 1 minutě na script jen se sudo poweroff  ... a ono to fungovalo  ;D ... asi na sedmý pokus se mi podařilo tam v editoru vrazit 0 tak jsem to protáhl na 10min a byl klid  ::)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 15 Červenec 2019, 19:56:21
Kód: [Vybrat]
*/5 18-7 * * * příkaz
Tak tohle nakonec nefunguje. Cron nezvládne první hodinu větší než druhou. Takže to musím zkusit rozdělit na dva joby, 18-23 a 0-7
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 16 Červenec 2019, 01:02:37
Kód: [Vybrat]
*/5 18-7 * * * příkaz
Tak tohle nakonec nefunguje. Cron nezvládne první hodinu větší než druhou. Takže to musím zkusit rozdělit na dva joby, 18-23 a 0-7

Ano, je to tak - takže buď rozdělit do dvou jobů:
Kód: [Vybrat]
*/5 18-23 * * * příkaz
*/5 0-7 * * * příkaz

nebo raději mnohem elegantněji takto:
Kód: [Vybrat]
*/5 18-23,0-7 * * * příkaz
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 17 Červenec 2019, 19:45:54
No, já nakonec přistoupil k první variantě, kterou jsem byl schopen vyplodit i sám ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 17 Červenec 2019, 23:21:25
No, já nakonec přistoupil k první variantě, kterou jsem byl schopen vyplodit i sám ;)

Neděje se to sice příliš často, ale chtěl bych vyjádřit uživateli "panRajče" uznání, jak si (nakonec) samozřejmě za přispění uživatelů tohoto fóra poradil s vyřešením svého problému.
Kéž by bylo více takovýchto "samostatných" tazatelů.
Kteří nejenže spoléhají na cizí řešení (inspirace je OK), ale zároveň se snaží i "po vlasní ose".
A ano, další "problémy" v budoucnu určitě nějaké nastanou (jak jinak, sám je řeším denně), ale ve tvém případě už obavy rozhodně nemám.
No a kdyby náhodou, už víš kam se obrátit, rádi pomůžeme.... ;)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 18 Červenec 2019, 10:18:23
Neděje se to sice příliš často, ale chtěl bych vyjádřit uživateli "panRajče" uznání, jak si (nakonec) samozřejmě za přispění uživatelů tohoto fóra poradil s vyřešením svého problému.
Kéž by bylo více takovýchto "samostatných" tazatelů.
Kteří nejenže spoléhají na cizí řešení (inspirace je OK), ale zároveň se snaží i "po vlasní ose".
A ano, další "problémy" v budoucnu určitě nějaké nastanou (jak jinak, sám je řeším denně), ale ve tvém případě už obavy rozhodně nemám.
No a kdyby náhodou, už víš kam se obrátit, rádi pomůžeme.... ;)
Ažž se červenám :-* Díky.
No momentálně mám vyřešené všechny požadavky, které jsem na konkrétním stroji s Ubuntu chtěl udělat. Teď už bude záležet i na vedení firmy, aby toho využily na plno.
Ale třeba až se definitivně rozhodnu doma přejít z Widlí na Ubuntu, tak mne tu máte zase  :P
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 18 Červenec 2019, 23:25:14
Ale třeba až se definitivně rozhodnu doma přejít z Widlí na Ubuntu, tak mne tu máte zase  :P

Proč definitivně - udělej to jako ostatní. Řešením je dualboot. Můžeš spokojeně provozovat oba systémy zároveň.
P.S. To bys nevěřil, jak se zkušenosti nabyté na linuxu "hodí" i ve Windows....
A do W7 jsem si přidal https://sourceforge.net/projects/win-bash/ takže ve Windows teď v pohodě používám sed, tea, cat, awk a další v linuxu běžné věci. Dokonce jsem si "zprovoznil" aliasy, další v linuxu běžnou věc...
---------------------------------------------
Na přístup (z Windows) na linuxové partition používám (raději pouze read-only) https://sourceforge.net/projects/ext2fsd/
Odvahu!
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 19 Červenec 2019, 19:55:21
To není ani tak o odvaze, ale spíše času. Sotva se dostanu na jeden systém :D

Ale máš pravdu, že začínám uvažovat také, jestli by něco z toho šlo aplikovat na W7. V práci bych na nich rád využil to vypínání přes parametry GPU. Jestli by šel nějak využít, modifikovat, ten Bash script.
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 19 Červenec 2019, 20:17:51
To není ani tak o odvaze, ale spíše času. Sotva se dostanu na jeden systém :D

Ale máš pravdu, že začínám uvažovat také, jestli by něco z toho šlo aplikovat na W7. V práci bych na nich rád využil to vypínání přes parametry GPU. Jestli by šel nějak využít, modifikovat, ten Bash script.

Pokud si do win "nasadíš" linux prostředí (Cygwin), můžeš bash scripty používat přímo. Jinak jdou samozřejmě upravit/převést na .cmd skripty, celkem nic na tom není.  A pokud to nevíš, Conky existuje i pro windows...
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 20 Červenec 2019, 12:01:33
No zatím jsem si nastudoval, že Nvidia-smi je v ovladačích  pro Widle také a lze jí spustit klasický v cmd.
Takže jak říkáš, buď aplikovat Linux ve W7 (ty máme v práci primárně, i když se uvažuje i o upgradu na W10, které dávají trochu větší výkon i v Octane). A nebo nastudovat převod toho mého scriptu na cmd.
Conky asi není nutné, na to mě běží MSI Afterburner v systray. Ale něco jednoduchého jako Cron by se šiklo. Ten Plánovač úloh ve Widlich je naprosto a ti-user-friendly  8)
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 20 Červenec 2019, 12:32:30
No zatím jsem si nastudoval, že Nvidia-smi je v ovladačích  pro Widle také a lze jí spustit klasický v cmd.
Takže jak říkáš, buď aplikovat Linux ve W7 (ty máme v práci primárně, i když se uvažuje i o upgradu na W10, které dávají trochu větší výkon i v Octane). A nebo nastudovat převod toho mého scriptu na cmd.
Conky asi není nutné, na to mě běží MSI Afterburner v systray. Ale něco jednoduchého jako Cron by se šiklo. Ten Plánovač úloh ve Widlich je naprosto a ti-user-friendly  8)

Mě naopak ten plánovač až tak špatný nepřipadá. Ale mám dojem, že něco jako cron existje i pro win
https://www.z-cron.com/scheduler.html
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 23 Červenec 2019, 12:45:19
Tak a jsem tu znova se svými dotazy

Když jsem se tu bavili o možnosti alternativy Conky pod Windows .... napadlo mne teď, šlo by nějak parametry ze stroje s Ubuntu (nvidia-setting Utilization) poslat pro výstup na PC s W7 ???
Respektive spíše asi naopak .... když je v Conky/Wonky (Rainmeter, Dektop Info,...) příkaz na "požadavek" získání hodnoty
Kód: [Vybrat]
${exec nvidia-settings -tq [gpu:0]/GPUUtilization | awk -F '[,= ]' '{ print $2 }'}% tak jestli to lze prostřednictvím sítě.
Asi pěkná blbost. Jedině že by to bylo z Ubuntu na Ubuntu. Ale Ubuntu - Widle  :-\
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: juwa2 23 Červenec 2019, 19:34:50
A pročpak by to nešlo?
1. Oba počítače musí běžet. Musí mít nasdílenou složku kam se bude soubor s výstupem ukládat.
2. Na Windows musí být účet s heslem. Složku nasdílej pomocí SMB
A výstup příkazu přesměrovat (>) do souboru. Cestu zadávat ve tvaru  \\IP\složka\soubor
Název: Re:skript pro vypnutí PC - v Conky nebo jinak ?
Přispěvatel: panRajce 25 Červenec 2019, 15:05:16
A pročpak by to nešlo?
1. Oba počítače musí běžet. Musí mít nasdílenou složku kam se bude soubor s výstupem ukládat.
2. Na Windows musí být účet s heslem. Složku nasdílej pomocí SMB
A výstup příkazu přesměrovat (>) do souboru. Cestu zadávat ve tvaru  \\IP\složka\soubor


No vidíš  :) já jsem uvažoval o přímém předávání a máš pravdu, že by to šlo řešit ukládáním do nějakého logu a jeho následným čtením.
O to snazší, že tu používáme firemní NAS, takže soubory mohu ukládat na něj.