Μετάβαση στο περιεχόμενο

at (Unix)

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
(Ανακατεύθυνση από Batch (Unix))


Στα λειτουργικά συστήματα που μοιάζουν με το Unix, η εντολή at χρησιμοποιείται για να χρονοπρογραμματίζονται εντολές που θα εκτελεστούν κάποια στιγμή στο μέλλον.

Η εντολή διαβάζει μια σειρά εντολές από την καθιερωμένη έξοδο (standard input) και τις ομαδοποιεί όλες μαζί σαν μια "at-εργασία" ("at-job") που θα εκτελεστεί κάποια μεταγενέστερη χρονική στιγμή. Η εργασία αυτή κληρονομεί το τρέχον περιβάλλον, επομένως εκτελείται στον ίδιο φάκελο και με τις ίδιες μεταβλητές περιβάλλοντος, όπως τη στιγμή που χρονοπρογραμματίστηκε.

Διαφέρει από την cron, η οποία χρησιμοποιείται για επαναλαμβανόμενες εργασίες (π.χ. κάθε ώρα, κάθε Τρίτη, 1η Ιανουαρίου κάθε έτους). Όπως και με την cron, πολλά συστήματα Unix επιτρέπουν στο διαχειριστή να περιορίζει την πρόσβαση στην εντολή at.

Η at μπορεί να στείλει email σε κάποιον χρήστη όταν τελειώσει την εργασία της, μπορεί να χρησιμοποιεί πάνω από μια ουρές από εργασίες και μπορεί να διαβάζει τη λίστα των εργασιών από κάποιο χρήστη αντί από την είσοδο. Για παράδειγμα, μια εντολή που μεταγλωττίζει ένα πρόγραμμα σε C στις 11:45 π.μ. στις 31 Ιανουαρίου και στέλνει email με τα αποτελέσματα της εξόδου (STDOUT) και της εξόδου σφαλμάτων (STDERR) στον χρήστη με το τρέχον ID είναι:

$ echo "cc -o foo foo.c" | at 1145 jan 31

ή

$ at 1145 jan 31
at> cc -o foo foo.c
at> ^D (press Control-D while at the beginning of a line)

Σε κάποια λειτουργικά συστήματα τύπου Unix χρησιμοποιεί έναν δαίμονα (daemon), τον atd, ο οποίος περιμένει στο παρασκήνιο και ελέγχει περιοδικά τη λίστα με τις εργασίες, εκτελώντας αυτές που πρέπει στο σε κάποια χρονική στιγμή, για λογαριασμό της εντολής at.

Αν χρησιμοποιηθεί η εντολή batch αντί της at, μπορούν να εκτελούνται οι προγραμματισμένες εργασίες μόνο όταν το φορτίο του συστήματος είναι μικρότερο από 0,8.

Τα λειτουργικά συστήματα Windows NT, 2000, XP και 7 έχουν επίσης μια αντολή at (παρόμοια με την cron), αλλά προτιμάται έναντι αυτής ο Task Scheduler.

Εξωτερικοί σύνδεσμοι

[Επεξεργασία | επεξεργασία κώδικα]