Замена функции оригинальной функции из первого скрипта на эту (из второго) (см. ниже) дала положительный результат. вроде все работает пока.
попозже постараюсь разобраться, в чем же было дело.
Тем не менее, буду рад увидеть какие-либо наработки в этом направлении.
proc CheckRunning { LineNum Name } {
catch { exec sed -n $LineNum $::PIDFILE } p1
catch { exec pidof $Name } p2
set lP2 [split $p2]
set Running 0
foreach i $lP2 {
if {$p1 == $i && $i != ""} {
incr Running
break
}
}
return $Running
}