Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.
Ε, ναι.

Δοκίμασέ το κάπως έτσι:

>#!/bin/bash

mplayer mms://LU-NT-STREAM01.bce.lu/Alpha989

sleep 5

sh /usr/bin/radio &

 

Επίσης μπορείς να το κάνεις:

>
#!/bin/bash

while (true); do
  mplayer mms://LU-NT-STREAM01.bce.lu/Alpha989
  sleep 5
done

 

ώστε να μην εκτελεί κάθε φορά τον εαυτό του

Δημοσ.

Όπως επίσης και:

>#!/bin/bash
declare -a p_pid

play() {
   mplayer mms://LU-NT-STREAM01.bce.lu/Alpha989
   p_pid=`ps -ef | grep "[m]p | awk '{print $2}'`
}

cleanup() {
   kill -15 ${p_pid}
   sleep 5
   kill -9 ${p_pid} &> /dev/null
   undef p_pid
}

trap cleanup TERM

while [ 1 ]; do
   kill -0 ${p_pid} 2> /dev/null
   if [ "$?" != "0" ]; then
       play
   fi
   sleep 0.1
done

 

Εργασιοθεραπεία είναι αυτό τώρα Παρασκευιάτικο :P

Δημοσ.
Όπως επίσης και:

>#!/bin/bash
declare -a p_pid

play() {
   mplayer mms://LU-NT-STREAM01.bce.lu/Alpha989
   p_pid=`ps -ef | grep "[m]p | awk '{print $2}'`
}

cleanup() {
   kill -15 ${p_pid}
   sleep 5
   kill -9 ${p_pid} &> /dev/null
   undef p_pid
}

trap cleanup TERM

while [ 1 ]; do
   kill -0 ${p_pid} 2> /dev/null
   if [ "$?" != "0" ]; then
       play
   fi
   sleep 0.1
done

 

Εργασιοθεραπεία είναι αυτό τώρα Παρασκευιάτικο :P

 

 

Poser... (char *ten; )

Δημοσ.

Είναι γνωστό οτι είμαι μεγάλος poser-ας!

Μπάς και ξελαμπικάρει λίγο το μυαλό από τη δουλειά γιατί έχω πήξει πάλι.

ΥΓ. οχι undef στο script, unset είναι το σωστό :P

Δημοσ.

παιδια μισο να τα δοκιμασω στον δρομο και θα απαντησω ετσι, χιλια ευχαριστω ειναι καταπληκτικό δωρο :)

 

---------- Προσθήκη στις 18:42 ---------- Προηγούμενο μήνυμα στις 13:24 ----------

 

Εχει μεγαλη διαφορα , το process προσπαθει να μεινει ζωντανο και να κάνει επανεκινησεις και οταν κοβεται ξανασυνδεεται, φτανει ομως σε ενα σημειο που κολλάει στο broken pipe alsa κλπ

και μια φορα επεσε σε loop,

μηπως να τρέχω δυο scripts; ενα με το mplayer και ενα άλλο που να ελεγχει αν παίζει;

Δημοσ.

Δοκίμασε και αυτή τη version

>#!/bin/bash
declare -a p_pid

play() {
   mplayer mms://LU-NT-STREAM01.bce.lu/Alpha989
   p_pid=`ps -ef | grep "[m]p | awk '{print $2}'`
}

cleanup() {
   kill -15 ${p_pid}
   sleep 5
   kill -9 ${p_pid} &> /dev/null
   unset p_pid
}

trap cleanup TERM

while [ 1 ]; do
   kill -0 ${p_pid} 2> /dev/null
   if [ "$?" != "0" ]; then
       while [ -d /proc/${p_pid} ]; do
           sleep 0.5
       done
       play
   fi
   sleep 0.1
done

Δημοσ.

Από τη στιγμή που έχει το shebang line δεν χρειάζεται να του ορίσεις με ποιό shell θέλεις να εκτελεστεί. Το κάνεις executable (chmod u+x) και το τρέχεις με ./

Δημοσ.

μολις παταω enter μενει εκει δεν εκτελει τιποτα

και στο σπίτι που το δοκιμασα το ιδιο

Μπορει καποιος να το τρέξει μηπως κανω κατι λαθος και δεν το εχω δει

Δημοσ.

Ναι ΟΚ δικιά μου βλακεία. Δεν του είπα να εκτελέσει τίποτα πρίν το loop :P

 

EDIT: άκυρο και αυτό. Ανεβάζω σε λίγο καινούργιο.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...