i sad kada treba npr korisničku reakciju pri restartanju servicea i programa koje zahtjevaju ručno pritiskanje (q)uit tipke mi proces stoji blokiran. Kako da to automatski riješim?
Darko
Nisam tako nešto nikada probao jer je to super loša ideja na testnoj verziji (iako nije nešto pametnija ni na stable), ali apt-get -y --force-yes upgrade bi ti trebao raditi. Također, taj kron nema nikakvog smisla. | je pipe koji prebaci rezultat lijeve strane na ulaz desne (nije logičko "ili" što si vjerojatno mislio da je). Taman da je i || (logičko ili) naredba neće raditi. On će evaluirati ljevu stranu i tu stati, jer dalje nije potrebno (1 ILI X = > 1 tako da nema smisla evaluirati ništa drugo). Dakle, ti želiš:
apt-get update && apt-get -y --force-yes upgrade
&& je logička "i" operacija koja će prvo izvršiti "apt-get update", pa ako je ok onda tek apt-get -y --force-yes upgrade Da vidiš da li ti se naredba evaluira točno, odmah nakon izvšrenja ukucaj "echo $?" i rezultat mora biti 0 (nula) ako je ok (znači, inverzna je logika). --force-yes i -y nisu isto, ovo drugo će stati nad lošim idejama, dok će --force-yes provesti bilo koji upgrade, makar odmah nakon toga nepovratno uništio čitavi sustav.
Kad/ako sjebeš sustav tim kronom, nemoj kriviti mene
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
pardon, da se korigiram "apt-get -y --force-yes upgrade"
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
mozda je pametnije staviti apt-get update; apr-get -y --force-yes upgrade ili jos bolje dist-upgrade jer kad vec hoces rasturit sustav go all the way.
a ; umjesto && jer ako update faila onda nece radit upgrade, a mozda je sasvim ok da faila. i ne zaboravi sloziti neki redirect outa i erra u log, ne u null pa da bar znas kaj je krepalo ako krepa.
A greške u stvari ne treba preusmjeravati jer već postoje logovi u /var/log i za dpkg i za apt.
Ako inače imaš neki interaktivni program za kojega treba bez nadzora pritisnuti koju tipku ili nešto automatski upisati, netko je ovdje ukazao da za to postoje expect skripte. Npr.:
#!/usr/bin/expect -f
set timeout -1 #postavi bez timeouta, tj izlaz kad aplikacija pošalje EOF (inače je pozitivni broj u minutama)
spawn whoami #pokreni program whoami
expect { #očekuj znakovni izlaz od programa
"(q)uit" { send "q\r"; exp_continue } #ako traži da se stisne "quit", pošalji "q" i enter i nastavi dalje skenirati
"$env(USER)" { puts "je magare"; exp_continue } #mala šala
}