• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Tumbleweed: Dienst beim Systemstart starten lassen

padersuse

Hacker
Bei der Installation des Megaraid Storage Controller Managers für den Controller 9361-8i wurde auch der Dienst vivaldiframeworkd instaliert, allerdings wurde der "Dienst" unter /etc/init.d/ unter dem Script vivaldiframeworkd abgespeichert. Unter Opensuse Tumbleweed kann ich den Dienst unter yast nicht finden. Kopiere ich das Script vivaldiframeworkd nach /usr/lib/systemd/system/frameworkd.service, finde ich es unter Yast, Dienste, wieder, starten und stoppen funktioniert nicht richtig, den Dienst beim Systemstart starten, wird erst garnicht angezeigt. Was muss man tun, um das Sript in das BS-System zu integrieren.
Gruß Padersuse

das Script von frameworkd :

Code:
#!/bin/bash
#description: Framework serice startup/shutdown script
# chkconfig: 2345 99 00
### BEGIN INIT INFO
# Provides:          Framework
# Required-Start:    $syslog
# Required-Stop:    
# Default-Start:     2 3 4 5
# Default-Stop:      0 6
# Description:      vivaldiframework service
### END INIT INFO
#Function to check status of Framework service
source /etc/profile
check_status() {
x=`ps -ef|grep java|grep Framework.jar`
if [ "$x" = "" ] ; then
    return 3;
fi
return 0
}

#Function to start Framework service
start() {
\rm -f /tmp/network_present
. /etc/init.d/msm_profile
network_flag=0
for (( i=0; i < 20; i++ ))
do
if [ -f "$MSM_HOME/Framework/TestNetworkCapability.class" ]
then
echo "$MSM_PRODUCT with Network Capability">>/dev/null
"$JRE_HOME/bin/java" -classpath "rt.jar:$MSM_HOME/Framework" TestNetworkCapability
if [ -f /tmp/network_present ]
then
network_flag=1
i=21
\rm -f /tmp/network_present
else
sleep 5
fi
else
echo "$MSM_PRODUCT without Network Capability">>/dev/null
network_flag=1
i=21
fi
done
if [ $network_flag -eq 1 ]
then
echo "Trying to start Framework.....">>/dev/null
else
echo "$MSM_PRODUCT failed to start Framework..... Check your Network">>/dev/null
echo "Trying to start Framework without Network Capability.....">>/dev/null
fi
sh "$MSM_HOME/Framework/startup.sh" >> /dev/null 2>>/dev/null &
}

#function to stop Framework Service
stop() {
. /etc/init.d/msm_profile
sh "$MSM_HOME/Framework/shutdown.sh" >> /dev/null &
sh "$MSM_HOME/Framework/shutdown.sh" >> /dev/null &
}

case "$1" in
    start)
        check_status
        status=$?
        if [ $status = 0 ]; then
            echo "Framework is already running....."
        else
            echo "Starting Framework: "
            start
        fi
        ;;
    stop)
        check_status
        status=$?
        if [ $status = 3 ]; then
            echo "Framework is already stopped....."
        else
            echo "Shutting down Framework: "
            stop
        fi
        ;;
    restart|reload)
        $0 stop
        sleep 20
        $0 start
        ;;
    status)
        check_status
        RETVAL=$?
        if [ $RETVAL = 0 ]; then
            echo "Framework is running..."
        else
            if [ $RETVAL = 3 ]; then
                echo "Framework is stopped..."
            else
                echo "Framework status unknown..."
            fi
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
esac
exit $RETVAL

Was kann ich tun ?
Gruß Padersuse
 

Christina

Moderator
Teammitglied
Bei der Installation des Megaraid Storage Controller Managers für den Controller 9361-8i wurde auch der Dienst vivaldiframeworkd instaliert, allerdings wurde der "Dienst" unter /etc/init.d/ unter dem Script vivaldiframeworkd abgespeichert.
Ist das eine ältere Software? Zeige uns doch bitte, wo du diese heruntergeladen hast.
Kopiere ich das Script vivaldiframeworkd nach /usr/lib/systemd/system/frameworkd.service, finde ich es unter Yast, Dienste, wieder, starten und stoppen funktioniert nicht richtig, den Dienst beim Systemstart starten, wird erst garnicht angezeigt.
Das kann nicht funktionieren!

Einen "Eigener-Start.service" müsstest du zudem unter /etc/systemd/system/ anlegen. YaST nützt dir da gar nichts.
Aber, ob das mit dem Skript oben so funktionieren würde, kann ich auf den ersten Blick leider nicht sehen.
 

josef-wien

Ultimate Guru
Erfüllt das Skript die gewünschten Aufgaben, wenn Du es als root mit
Code:
/etc/init.d/vivaldiframeworkd xxx
startest, wobei xxx einer der fünf Werte start stop restart reload status ist? Trifft das zu, wirst Du einen oder mehrere systemd-Dienste brauchen, die das Skript mit dem jeweils gewünschen Parameter starten. Trifft das nicht zu, wirst Du es an Deine Gegebenheiten anpassen müssen (und da wir die entsprechende Anwendung nicht kennen, werden wir wohl wenig dabei helfen können).

P. S. Die Einbeziehung der Datei /etc/profile ist in meinen Augen nicht sauber, denn dort wird etwas nicht näher Spezifiziertes erwartet, das eigentlich in einer eigenen Datei im Verzeichnis /etc/profile.d stehen sollte. Ob die Variablen MSM_PRODUCT und JRE_HOME erwartungsgemäß gesetzt sind bzw. in /etc/init.d/msm_profile gesetzt werden, wäre gegebenenfalls auch zu prüfen.
 

Christina

Moderator
Teammitglied
@padersuse
Da werden bei Broadcom aber 3025 Treffer angezeigt. Welche Datei ist es denn?
Bitte per Browser "Rechtsklick" auf die Datei, dann "Link-Adresse kopieren" und hier als Link posten (🔗 Link einfügen – nicht in Code-Tags bitte).
 
OP
P

padersuse

Hacker
es ist die Datei 17.05.06.00_MSM_Linux-x64/MSM_linux_x64_installer-17.05.06-00.tar.gz

Ich weiss, der Controller ist schon älter und die Software passt nicht ganz zu gängigen Distributionen, aber mit wenigen Anpassungen wäre es vielleicht gegangen. In das BIOS des Controllers komme ich ja auch rein beim Starten des Rechners, aber die GUI ist nunmal auch sehr aussagekräftig.
Gruß Padersuse
 

Anhänge

  • readme.txt
    28,5 KB · Aufrufe: 3

susejunky

Moderator
Teammitglied
Hallo @padersuse ,

Du hast also das readme gelesen und alle erforderlichen Voraussetzungen (z.B. JAVA-Umgebung, libstdc++33-32bit, ...) geschaffen?

Kannst Du mit der mitgelieferten Datei startupui.sh MSM starten (als "root")?

Viele Grüße

susejunky
 
OP
P

padersuse

Hacker
Hallo Susejunky,

entschuldige meine späte Antwort :

ja, kann ich, muss aber erst den Dienst /etc/init.d/vivaldiframeworkd händisch aktivieren
 

susejunky

Moderator
Teammitglied
Hallo @padersuse ,

ja, kann ich, muss aber erst den Dienst /etc/init.d/vivaldiframeworkd händisch aktivieren

verstehe ich das richtig:

Du kannst das vivaldiframework mit /etc/init.d/vivaldiframeworkd start starten (so dass es im Hintergrund aktiv ist) und dann mit /usr/local/MegaRAID Storage Manager/startupui.sh die zugehörige grafische Anwendung aufrufen?

Wenn dem so ist, dann sollte es möglich sein
  • einen systemd-Service zu schreiben, der beim Systemstart /etc/init.d/vivaldiframeworkd start ausführt
  • /usr/local/MegaRAID Storage Manager/startupui.sh in den Autostart Deiner Desktopumgebung einzubinden.
Hier ein Beispiel für einen einfachen systemd-Service (z.B. /etc/systemd/system/vivaldiframework.service), der beim Systemstart (ein mal) aufgerufen wird:

Code:
[Unit]
Description=z.B. Starte vivaldiframework
[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c "/etc/init.d/vivaldiframeworkd start"
[Install]
WantedBy=multi-user.target

ACHTUNG! Das ist NUR EIN BEISPIEL! Ob das so funktioniert, habe ich nicht ausprobiert.

Hier findest Du mehr Informationen zu systemd.

Viele Grüße

susejunky
 
OP
P

padersuse

Hacker
Hallo susejunky,

das probiere ich aus. Ich melde mich dazu.

Ich danke Dir / Euch

Viele Grüße

Padersuse
 
Oben