Portál AbcLinuxu, 4. prosince 2025 21:04
funkce(){
for((;;))
if pidof $1;
then
...
else
return
done
}
lzma -c sobor&
funkce "lzma"
...
Chova se to tak, ze skript neskonci, jako by se po ukonceni lzma nevratil z funkce k vykonani dalsiho kodu. Vite nekdo kde je problem?
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 11413
wait4(-1, 0x7fff25cb3e1c, WNOHANG, NULL) = 0
rt_sigreturn(0xffffffffffffffff) = -1 EINTR (Interrupted system call)
read(3,
for ((;;));
do
PID=$(pidof "$PK_BIN")
if [ -n "$PID" ];
then
SIZE_C=$(stat $FILE_E --printf "%s")
SPEED_B=$((SIZE_C-SIZE_P))
if [ $SPEED_B -gt 1000000 ];
then
SPEED=$(awk '{printf "%.1f MB/s", $SPEED_B/1000/1000}')
elif [ $SPEED_B -gt 1000 ] && [ $SPEED_B -le 999999 ];
then
SPEED=$(awk '{printf "%.1f KB/s", $SPEED_B/1000}')
else
SPEED="$SPEED_B B/s"
fi
if [ $N -eq 10 ];
then
test -t 1 && printf " hotovo : %d byte z %d [%s]\r" $SIZE_C $SIZE_S $SPEED
N=0
fi
((N++))
SIZE_P=$SIZE_C
sleep 0.1
else
SIZE_C=$(stat $FILE_E --printf "%s")
test -t 1 && printf " hotovo : %d byte [--] spracovano za %s\n" "$SIZE_S" "$(date +%M:%S -d @$(($(date +%s)-$TIME_S)))"
break
fi
done
...
Je nejaky duvod, proc posilate funkci jmeno procesu a ne jeho cislo?
funkce(){
while [ -d "/proc/$1" ]
do
.......
done
}
lzma -c sobor&
funkce $!
Precejenom je vetsi pravdepodobnost, ze tam bude proces se stejnym jmenem, nez cislem.
Marek
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.