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

Kill process συγκεκριμένη ώρα. (Schedule kill)


g1annis

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

Χαίρετε.

 

Ξέρει κανείς αν υπάρχει τρόπος να προγραμματίσω από bash να σκοτώσω μια διεργασία σε συγκεκριμένο χρόνο?

 

Με shutdown -P xx ας πούμε κλείνει το pc (for power) σε χχ λεπτά.

 

Υπάρχει κάποιος τρόπος, πχ κάποιο όρισμα της kill ή κάποια άλλη εντολή που να δίνει ας πούμε kill στο gmlayer σε 45 λεπτά?

 

Ευχαριστώ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

mhpos prepei na deis thn cron ?

 

cron

http://en.wikipedia.org/wiki/Cron

http://www.scripts.oldguy.us/mysqldump/doc/cron.html

 

ps: to sticky tou nske gia to Unix, den lei kati sxetiko?

_________________________________________________________________________________

"While loops

 

Επίσης το shell μας επιτρέπει να εκτελούμε μια ενέργεια για όσο μια συνθήκη ισχύει με χρήση της While loop. Για παράδειγμα:

 

Παράθεση:

Κώδικας:

 

while ping -c1 1.2.3.4>/dev/null; do

echo `date` ":Το μηχάνημα είναι εντάξει";

sleep 5;

done

 

// Στέλνει ένα ping request κάθε 5 δευτερόλεπτα στη διεύθυνση IP 1.2.3.4 και αν λάβει απάντηση τυπώνει την ώρα και το μήνυμα "το μηχάνημα είναι εντάξει".

_________________________________________________________________________________

"

 

.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η at κάνει αυτό που θέλεις. Θα μπορούσες π.χ. να δώσεις:

>at -f script.sh  10pm today

για να εκτελεστεί το script.sh στις 10μ.μ. της τρέχουσας ημέρας

ή

>at -f script.sh now +45 minutes

για να εκτελεστεί σε 45 λεπτά από όταν τρέξεις την εντολή.

 

Όπως είπε ο gtroza, αν θέλεις να εκτελείται ανά τακτα διαστήματα, θα χρησιμοποιήσεις τον crond.

 

Γίνεται βέβαια και από shell, όμως η at και ο crond, ως εφαρμογές γραμμένες σε C ειδικά για αυτό το σκοπό, παρέχουν πιο πολλές λειτουργίες, πιο εύχρηστο interface και είναι πιο οικονομικές σε πόρους :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μάλλον δεν κατάλαβα σωστά τη σύνταξη.

 

Για να κλείσω το gedit ας πούμε σε 2 λεπτά πως θα πρέπει να συντάξω την εντολή?

 

Επίσης είδα και μια άλλη σύνταξη, του τύπου

echo "cc -o foo foo.c" | at 1145[/cOdE]

αλλά δεν κατάφερα ακόμα να την κάνω να δουλέψει.

 

Δοκίμασα ας πούμε τα παρακάτω

[cOdE]sudo killall gedit | at 1120
sudo killall gedit | at now +4 minutes[/cOdE]

και τις δύο φορές, μου εκτέλεσε το killall αμέσως!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φυσικά και το εκτέλεσε αμέσως, γιατί του είπες να το εκτελέσει :-). Η σύνταξή σου σημαίνει "τρέξε sudo killall gedit και πέρνα την έξοδο της εντολής στην at". Αυτό που θες είναι

>
echo "sudo killall gedit" | at 11:20

Επιπλέον καλό είναι να χρησιμοποιείς την kill και όχι την killall σε τέτοιες περιπτώσεις, γιατί η sudo killall gedit θα σκοτώσει όλα τα instances του gedit που τρέχουν, ανεξαρτήτως χρήστη.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...