console applikáció indítása, logok, "szépség" hibák

Fórumok

Adva van egy GPRS -en kommunikáló terminál szerűség. Mindez Debian 3.1 r8 - Sarge alapon. Nagyjából minden összeállt, de apró szépséghibáim vannak:
1. A pppd felállításához egy kis scriptet használok, amit a root crontab -ból hívok meg (próbáltam az interfaces -be is permanensen betenni, de ha nem tudja felépíteni a kapcsolatot addig nem lép tovább a rendszer, nincs ssh és konzol stb.) A crontab bejegyzés végén, beállítom hogy >lofile 2>&1 de a ppp kapcsolat építéskor mindíg kinyomja (az éppen aktuális konzolra), hogy "PPP Deflate Compression module registered ..." meg, hogy "PPP generic driver version 2.4.2". Miért lehet ez, hiszen mindenek el kellene mennie a log fájlba?
2. Van egy kis ncurses -es progi ami listázza a folyamatban lévő kommunikációt, ezt az indulásnál, az inittab -ból indítom "repawn" opcióval a rungetty segítségével úgy, hogy a tty3 -ra loginoljon - és a getty tty3 -as bejegyzést kivettem az inittab -ból. Szépen ott is van, mükszik de, arra nincs ötletem, hogy lehetne rávenni a rendszert hogy erre a konzolra lépjen? Vagyis miután bebootol és minden megy lépjen a monitor/billentyűzet a tty3 -as konzolra. Ha a tty1 -re loginelek, akkor jó, de azt nem szeretném bántani.

Minden ötlet jól jönne. Én egyenlőre kifogytam :(

Hozzászólások

A pppd felállításához egy kis scriptet használok, amit a root crontab -ból hívok meg (próbáltam az interfaces -be is permanensen betenni, de ha nem tudja felépíteni a kapcsolatot addig nem lép tovább a rendszer, nincs ssh és konzol stb.)

/etc/init.d/networking-wan:

#! /bin/sh

# Manage WAN interface

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

[ -x /sbin/ifup ] || exit 0

function getopt () {
  optname="$1"
  opt="$(grep "^$optname=" /etc/network/options)"
  if [ -n "$opt" ]; then
    eval "$opt"
  fi
}

case "$1" in
  start|force-reload|restart)
    getopt wan_if
    if [ -n "$wan_if" ]; then
      echo "Configuring WAN interface in the background..."
      (
        while true; do
          status="$(ifup "$wan_if" 2>&1)"
          if [ -z "$(echo "$status" | grep -s "Failed to bring up $wan_if.")" ]; then
            break
          fi
          sleep 1
        done
      ) &
    fi
    ;;
  stop)
    ;;
  *)
    echo "Usage: ${0##*/} {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

exit 0
/etc/network/options

vegere:

wan_if=ppp0
/etc/network/interfaces

-be:

# auto ppp0
iface ppp0 inet ppp
  provider gprs
  up [ -f /var/run/networking-wan.lock ] || { run-parts --arg=start /etc/rc-wan.d || true; }

Kell meg egy

update-rc.d networking-wan start 55 S .

is, es akkor a hatterben inditja el a WAN interfeszt, es miutan elindult, vegrehajtja az

/etc/rc-wan.d

-ben talalhato szkripteket (peldaul ntp szinkronizalas).

úgy, hogy a tty3 -ra loginoljon - és a getty tty3 -as bejegyzést kivettem az inittab -ból

Miert nem teszed a tty1-re a programodat?

Kösz :D Tanulságos válasz.
Én ugyancsak a crontab -ba tettem be de a Debian -ban rendszeresített pon és poff scriptet használom egy sajátba beágyazva. (elszúrtam a crontab bejegyzést, így a pppd error csatornája nem ment a log fájlba hanem a konzolt rondította össze) Működik, nincs probléma - ráadásul nekem van egy fix ellenpontom és azt pingelve 5 percenként ellenőrzöm meg van -e még kapcsolat - ha nincs újra építem.
Jelenleg is a tty1 -re van téve, csak szerettem volna máshova tenni - amolyan bogaras vagyok, sose használom a tty1, mindíg a tty2 -től kezdek. Ráadásul a tty1 az ami mindenféle runlevelben megjelenik "2345".

* Én egy indián vagyok. Minden indián hazudik.

van egy fix ellenpontom és azt pingelve 5 percenként ellenőrzöm meg van -e még kapcsolat - ha nincs újra építem

A kovetkezo ppp opciok ugyanezt csinaljak:

persist
maxfail 0
holdoff 10
lcp-echo-interval 60
lcp-echo-failure 5

Jelenleg is a tty1 -re van téve, csak szerettem volna máshova tenni

/usr/local/bin/run-on-tty:

#! /bin/bash

if [ -c "$1" ]; then
  TTY="$1"
elif [ -c "/dev/$1" ]; then
  TTY="/dev/$1"
else
  echo "Usage: ${0##*/} <tty> <program> [ <args> ... ]" > /dev/stderr
fi

shift

exec "$@" < "$TTY" &> "$TTY"


/etc/inittab-ba:

3:2345:respawn:/usr/local/bin/run-on-tty tty3 /a/te/programod -op -ciok

amolyan bogaras vagyok, sose használom a tty1, mindíg a tty2 -től kezdek.

En is, nekem is megvan, hogy melyik konzolt mire hasznalom... :-)

Az a két üzenet szerintem a PPP-hez használt kernelmoduloktól származik, nem a scriptedtől, úgyhogy a syslog(-ng) beállításait nézd meg.

Az lehet, de hogy a modulban ott van az ominózus string, az egyszer biztos...:


en@gepem:/$ strings /lib/modules/2.6.28-19-generic/kernel/drivers/net/ppp_deflate.ko | grep "registered"
<6>PPP Deflate Compression module registered
en@gepem:/$ 

Ez a modul betöltésekor jelenik meg - próbáld ki az "rmmod ppp_deflate" parancs után a cron jobot futtatni.

A második problémakörre a megoldás emlékeim szerint a chvt parancs.