Uhu alatt automatikus programindítás hogyan?

Kezdőlap Fórumok SOS! Bajban vagyok Uhu alatt automatikus programindítás hogyan?

10 bejegyzés megtekintése - 1-10 / 13
  • Szerző
    Bejegyzés
  • #2070344
    balev
    Felhasználó

      Tedd be abba az init szkriptbe, ahol még nem fut a grafikus szerver! (init 3 általában)
      /etc/init.d/ alatt kutakodj! Vagy az rc.local-ba is teheted, az is az X előtt fut még le.

      #2070345
      Csodaturmix
      Felhasználó

        Szeva!
        Bemész az /etc/init.d könyvtárba.
        Megynyitod a SKELETON filet egy szöv. szerkesztővel.
        Tartalmát törlöd.
        Beírod:

        Code:
        #!/bin/sh
        #
        # /etc/init.d/SKELETON
        #
        # (C) 2001-2004
        # Pozsár Balázs
        #
        # This file is originally part of the UHU-Linux distribution.
        # Distributable under GPL v2.
        #
        # Ez a fájl eredetileg az UHU-Linux disztribúció része.
        # A GPL v2 licenc szerint terjeszthető.
        #

        # —————————————————————————–
        DAEMON=/usr/sbin/daemon
        NAME=”VNCSERVER”
        DESC=”VNC”

        # —————————————————————————–
        PIDFILE=”/var/run/$NAME.pid”

        [ -x „$DAEMON” ] || exit 0

        [ -f /etc/init.d/common ] && . /etc/init.d/common || {
        echo „Hiba a /etc/init.d/common beolvasása közben” >&2
        exit 1
        }

        loaddefaults „$NAME”

        function error() {
        echo „$ERR”
        exit 1
        }

        case „$1” in
        start)
        vncserver;
        echo „$OK”
        ;;
        stop)
        killall vncserver;
        echo „$OK”
        ;;
        reload)
        echo -n „$DESC ($NAME) újraindítása”
        killall vncserver;
        vncserver;
        echo „$OK”
        ;;
        status)
        # XXX FIXME
        ;;
        esac

        exit 0

        mentés másként -> /etc/init.d/vnc.
        adj neki jogot a futtatáshoz.

        Ezután belépsz a /etc/runlevel.d/default könyvtárba, megnyitsz egy filet törlöd a tartalmát, bemásolod a helyére ezt:

        Code:
        Summary=VNC
        Summary[hu]=VNC server
        Description=VNC szerver indítása
        Description[hu]=VNC server
        Script=/etc/init.d/vnc
        SupportsReload=yes
        Sequence=20

        majd elmented vnc.service néven, majd átmész a /etc/runlevel.d/custom könyvtárba és ott szintén szerkesztesz egy filet és bemásolod tartalomként ezt:

        Code:
        Runlevels=2345

        UHU vezpult-> szolgáltatások, vnc: induljon el.

        // mindezt csoege -nek köszönd ne nekem. ő tanított meg szolgáltatást írni 😉

        #2070346
        PAraNOia
        Felhasználó

          Köszönöm csodaturmix, megcsináltam amit leírtál, de ennek ellenére sem indul el a vncserver csak ha belépek KDE vagy Gnome al és kézzel elindítom…  :blink:

          #2070347
          uzsolt
          Felhasználó

            Hát igen, ez az agyonbonyolított init-szkriptek előnye 🙂
            Próbáld azt, amit balev írt. Gondolom, a csodaturmix-féle megoldás is jó, csak valamit kihagyhattál.

            #2070348
            Csodaturmix
            Felhasználó
              PAraNOia wrote:
              Köszönöm csodaturmix, megcsináltam amit leírtál, de ennek ellenére sem indul el a vncserver csak ha belépek KDE vagy Gnome al és kézzel elindítom…  :blink:

              Üdv!
              rootként add ki: 
              /etc/init.d/vnc start ha elindul, fut akkor elvben rendben kell lennie.

              #2070349
              ELaci
              Felhasználó

                Szerintem az lehet a gond hogy boot -kor nem tudja hogy milyen user számára kell indítani a szervert. Elvileg root, de nem biztos.

                ELaci

                #2070350
                PAraNOia
                Felhasználó

                  Ha kiadom a parancsot akkor elindul…

                  A gond a daemonnal lehet, hogy az /usr/sbin-ben nincs vnc nevű daemonom…

                  Daemont hogyan tudok oda varázsolni? És mit kell annak tartalmaznia?

                  Köszönöm az eddigi segítséget

                  Ja és root-ként vagyok bejelentkezve, tehát az nem lehet gond (nem megijedni itthoni gép és csak próblgatom ég a dolgot :D)

                  #2070351
                  balev
                  Felhasználó
                    PAraNOia wrote:
                    Ha kiadom a parancsot akkor elindul…

                    A gond a daemonnal lehet, hogy az /usr/sbin-ben nincs vnc nevű daemonom…

                    find /usr -name vnc*

                    Ja és root-ként vagyok bejelentkezve, tehát az nem lehet gond (nem megijedni itthoni gép és csak próblgatom ég a dolgot :D)

                    Nem jó ötlet. Például a környezeti változók is mások, mint felhasználó esetén. Ha valamit beállítasz root-ként, nem biztos, hogy felhasználóként is jó lesz.
                    Egyébként meg könnyű valamit végérvényesen elrontani, tehát csak akkor válts root jogosultságra, ha feltétlen szükséges.

                    Mindezektől függetlenül külön script használata nélkül (pláne ha nem te írtad, vagy nem érted, hogy működik) egyszerűbb lenne egy rc fájlt írni a meglévők mintájára és betenni valamelyik grafikus szerver előtti init szintbe.

                    #2070352
                    PAraNOia
                    Felhasználó

                      Addig továbbjutottam, hogy /usr/bin/vncserver, tehát nem az /usr/sbin-ben van…

                      balev.

                      A tanácsot köszönöm, átváltok user-be root helyett…
                      Hol találok rc fájl mintát, és hogyan/hova rakom be init 5 előtti szintbe?

                      #2070353
                      balev
                      Felhasználó

                        Már rég volt fent UHU-m. Ha belépsz a az /init.d könyvtárba találsz benne több rc (runtime component) fájlt. Ezekben lehetnek szolgáltatások, démonok leíró fájljai (pl. mint ez a vnc-s szkript). Fogsz egy ilyet mintának, megnézed a tartalmát.

                        Például én egy másik rc mintájára készítettem egyet a PPPoE-nek:

                        Code:
                        balev@slack:~$cat /etc/rc.d/rc.pppoed
                        #!/bin/sh
                        # Start/stop/restart pppoe.

                        # Start pppoe:
                        pppoe_start() {
                          if [ -x /usr/sbin/pppoe-start ]; then
                            echo „Starting PPPoE daemon:  /usr/sbin/pppoe-start”
                            /usr/sbin/pppoe-start
                          fi
                        }

                        # Stop pppoe:
                        pppoe_stop() {
                          pppoe-stop
                        }

                        # Restart pppoe:
                        pppoe_restart() {
                          pppoe_stop
                          sleep 1
                          pppoe_start
                        }

                        case „$1” in
                        ‘start’)
                          pppoe_start
                          ;;
                        ‘stop’)
                          pppoe_stop
                          ;;
                        ‘restart’)
                          pppoe_restart
                          ;;
                        *)
                          echo „usage $0 start|stop|restart”
                        esac

                        Ez maga a beállító fájl. Igaz itt csak magát a parancsot tartalmazza, de akár egyéb paraméterek is meg lehetnének adva. Az init szintek pedig egymás utáni sorrendben indítják az összes rc-t (plusz mást is).

                        Általában init 3 a multiuser init szint, ahol már van hálózat is, de még nincs grafikus velület. Ide érdemes betenni az rc fájlt, és akkor ezzel a szinttel fog elindulni. Gondolom kell neki (a vnc-nek) a hálózat, tehát a fő hálózati konfiguráló (inetd) után kell berakni (szerintem).

                        Tehát nálam pl. így néz ki az rc.M (UHU alatt meg kell nézni, szerintem init.3 vagy valami ilyesmi):

                        Code:
                        # Start PPPoE daemon:
                        if [ -x /etc/rc.d/rc.pppoed ]; then
                          . /etc/rc.d/rc.pppoed start
                        fi

                        Ilyen egyszerű. Persze kézzel is tudod majd kezelni, ha szükséges a $parancs start, stop, restart paraméterrel.

                        A lényeg, hogy a pppoe helyett beírod mindenhova a vnc-t (megfelelő elérési úttal). És UHU alatt /etc/init.d alatt vannak a fájlok és a szintek is, ha jól emlékszem.

                      10 bejegyzés megtekintése - 1-10 / 13
                      • Be kell jelentkezni a hozzászóláshoz.