Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

07.01.2008, 14:20

MYthtv mit eigenem X-Serve gleich nach dem booten

Hi,
ich hab mir auf meinem Rechner mythtv installiert. Ich habe nun vor über zwei Kerneleinträge entwerder normal zu booten, oder eben mythtv starten zu lassen.

Die /boot/grub/grub.conf schaut so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
default 0
timeout 5
splash=(hd0,1)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.23-gentoo-r3 (MythTv)
root (hd0,1)
kernel /kernel-2.6.23-gentoo-r3 root=/dev/hda3 ro mythtv

title=Gentoo Linux 2.6.23-gentoo-r3 (Normal)
root (hd0,1)
kernel /kernel-2.6.23-gentoo-r3 root=/dev/hda3 ro



Ich habe nun in die /etc/conf.d/local.start folgendes eingetragen:

Quellcode

1
2
3
4
5
6
7
8
9
if cat /proc/cmdline | grep mythtv; then
   /etc/init.d/mysql start &&
   /etc/init.d/apache2 start &&
   /etc/init.d/mythbackend start &&
   su mythtv
   /home/mythtv/myth.sh
else
   /etc/init.d/xdm start
fi


/home/mythtv/myth.sh hat folgenden Inhalt:

Quellcode

1
2
3
4
5
6
7
8
9
#!/bin/bash

if [ "$USER" == "mythtv" ]; then
   /usr/bin/X :1.0&
   export DISPLAY=:1.0
   /usr/bin/mythfrontend
else
   echo "USER ist nicht mythtv!"
fi


Wenn ich nun den normalen Kerneleintrag starte, startet ganz normal xdm, so wie es sein soll.

Wähle ich aber den MythTv-Eintrag läuft es wie folgt ab:

- Mysql wird gestartet
- Apache2 wird gestartet
- Mythbackend wird gestartet
- Benutzer mythtv wird angemeldet

Nun sollte ja eigentlich myth.sh ausgeführt werden.
Das Script an sich funktioniert auch.
Ich bekomm aber folgende Meltung:

Quellcode

1
bash: no job control in this shell


An was kann das liegen? Oder kennt jemand einen besseren Weg?

dsiggi

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dsiggi« (07.01.2008, 16:46)


2

07.01.2008, 16:45

So, habs hinbekommen.
Hier der Lösungsweg:

In der Datei "/etc/inittab" folgende Zeile geändert:

Quellcode

1
c1:12345:respawn:/sbin/agetty 38400 tty1 linux

nach

Quellcode

1
c1:12345:respawn:/home/mythtv/myth.sh


Inhalt der /home/mythtv/myth.sh:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

if cat /proc/cmdline | grep mythtv; then
   echo "Starte MythTv ..."
   /etc/init.d/mysql start &&
   /etc/init.d/apache2 start &&
   /etc/init.d/mythbackend start &&
   
   sudo -u mythtv /home/mythtv/mythx.sh; shutdown -h now
else
   /etc/init.d/xdm start
fi


Inhalt der /home/mythtv/mythx.sh:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash

/usr/bin/X :1.0&
export DISPLAY=:1.0
export MYTHCONFDIR=/home/mythtv/.mythtv
/usr/bin/mythfrontend > /home/mythtv/log.txt

ps=$(ps aux)

while echo "$ps" | grep mythfrontend; do
   sleep 2
   ps=$(ps aux)
done

xmessage "System wird herunter gefahren"
exit 0


Nun wird, wenn der MythTv-kernel gewählt wird, automatisch MythTv gestartet, und beim beenden wird das System automatisch heruntergefahren.

dsiggi

3

07.01.2008, 19:03

Grundsätzlich war Dein Fehler, das Du nach su in einer neuen Shell bist, dort aber ...

Du hättest eintragen sollen:
su -c /home/mythtv/myth.sh - mythtv

Allerdings währe Dein Rechner nicht automatisch runtergefahren ...
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

4

07.01.2008, 19:49


Quellcode

1
if cat /proc/cmdline | grep mythtv; then
Nur so nebenbei: mal wieder ein Fall von "useless use of cat". Einfacher gehts doch:

Quellcode

1
if grep mythtv /proc/cmdline; then

Gruß
Rudi
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]