Καλησπερα παιδια δοκιμαζω σε τερματικο
command &
οπως εχω διαβασει στο ιντερνετ τρεχει την εντολη κανονικα, αλα μόλις βγω απο το τερματικο σταματαει να τρεχει αυτο που ετρεξα. Νομιζω οτι η λυση δεν ειναι το & στο τελος της εντολης. Πως θα τρεξω μια εντολη και με το που κλεισω το τερματικο να συνεχιζει να τρεχει;
Εμφάνιση 1-15 από 17
-
01-06-15, 22:41 terminal command to background #1
-
01-06-15, 23:02 Απάντηση: terminal command to background #2
Τι είδους εντολή;
Αν τρέξεις ας πούμε μια γραφική εφαρμογή θα συνεχίσει να τρέχει κανονικά αν κλείσεις το τερματικό. Δοκίμασε πχ. firefox &.
-
01-06-15, 23:10 Απάντηση: terminal command to background #3
Όπως είπε και ο Ηλίας εξαρτάται από τι θέλεις να τρέξεις. Σε ένα μεγάλο ποσοστό περιπτώσεων αυτό που χρειάζεσαι είναι να ψάξεις την εντολή nohup.
"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
02-06-15, 01:53 Απάντηση: terminal command to background #4
Χρειάζεσαι το screen.
-
02-06-15, 15:13 Απάντηση: terminal command to background #5
Καταρχάς ευχαριστω όλους για το ενδιαφέρον. Οχι παιδιά δεν χρειάζομαι screen ειναι καθαρά console αυτό που θέλω να τρέχω στην ουσία ειναι ένας dedicated server cod2
- - - Updated - - -
Με την βοήθεια του imitheou βρηκα αυτό
http://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-shell-prompt.html
Θα δοκιμάσω αύριο και θα σας πω αποτελέσματα
- - - Updated - - -
Κώδικας:root@SERVER:~/cod2# nohup LD_PRELOAD=libcod2_1_3.so ./cod2_lnxded +set sv_cracked 1 +set dedicated 2 +exec server.cfg +map_rotate & [1] 15165 root@SERVER:~/cod2# nohup: ignoring input and appending output to `nohup.out' nohup: failed to run command `LD_PRELOAD=libcod2_1_3.so': No such file or directory
-
02-06-15, 15:15 Απάντηση: terminal command to background #6
-
02-06-15, 15:47 Απάντηση: terminal command to background #7
Όπως σου λέει, το nohup βλέπει σαν πρώτο όρισμα το LD_PRELOAD και πάει να το τρέξει και φυσικά δεν μπορεί να βρει αρχείο με αυτό το όνομα. Θα πρέπει να βάλεις στην αρχή τον ορισμό της μεταβλητής.
Επίσης αφού βρήκες την nohup, τώρα ψάξε την env Τρέξε "man env" για να πάρεις μια ιδέα
Για πιο πολύπλοκα πράγματα, θα έβαζες όλο το μακρυνάρι που βρίσκεται δεξιά του nohup μαζί με τον ορισμό της μεταβλητής σε ένα script και θα έτρεχες εκείνο με σκέτο "nohup script &""I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
02-06-15, 15:48 Απάντηση: terminal command to background #8
-
02-06-15, 15:57 Απάντηση: terminal command to background #9
Το screen (και το tmux που πολλοί το θεωρούμε πολύ πιο βολικό) είναι μια μαγκιά η οποία σου επιτρέπει να δημιουργείς sessions και να τρέχεις εφαρμογές τις οποίες μπορείς να αφήσεις να τρέχουν στο background και να επιστρέψεις ανά πάσα στιγμή.
Το nohup και το & αρκούν όταν θέλεις να τρέξεις κάτι που μπορεί να τρέξει μόνο του (πχ ένα compile, ένα κατέβασμα πολλών αρχείων, κτλ) και δεν σε νοιάζει να επανέλθεις. Τι γίνεται όμως αν μετά από κάποια στιγμή θέλεις να το φέρεις στο προσκήνιο και να πάρεις τον έλεγχο ? Δεν είναι και τόσο εύκολο. Επίσης αν η εφαρμογή σου χρειάζεται input (πχ πάτημα ενός πλήκτρου), τότε αυτή θα σταματήσει την εκτέλεση μέχρι να δωθεί η είσοδος.
Με τα screen / tmux μπορείς να τρέξεις και interactive εφαρμογές. Μια συνήθης χρήση παλαιότερα ήταν να τρέχεις ένα irc client μέσα στο screen στον μηχάνημά σου οπότε μπορούσες ανά πάσα στιγμή να μπεις με ssh από οπουδήποτε και να συνδεθείς στο session και να δεις τι γίνεται.
Παλαιότερα που οι συνδέσεις δεν ήταν και τόσο καλές, μερικές φορές έπεφτε η σύνδεση. Φαντάσου να συνδεθείς σε ένα server σου να κάνεις μια δουλειά και στη μέση της δουλειά να πέσει το ssh. Οπότε έμπαινες στο server, έτρεχες άμεσα screen και έκανες τα πάντα από εκεί οπότε και να έπεφτε η σύνδεση, η δουλειά σου θα συνεχιζόταν να δουλεύει κανονικά χωρίς να σταματήσει.
Edit: Με λίγα λόγια, αυτό που σου πρότεινε ο Wan είναι η δόκιμη λύση (αν και ίσως overkill στην παρούσα περίπτωση) για αυτό που θέλεις.Τελευταία επεξεργασία από το μέλος imitheos : 02-06-15 στις 16:03.
"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
02-06-15, 16:05 Απάντηση: terminal command to background #10
-
02-06-15, 16:23 Απάντηση: terminal command to background #11"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
02-06-15, 17:21 Απάντηση: terminal command to background #12
-
02-06-15, 18:58 Απάντηση: terminal command to background #13
Έχεις μπερδευτεί.
Το screen δεν αντικαθιστά το ssh ή το PuTTY.
Είναι πρόσθετο που τα συμπληρώνει. Για την ακρίβεια δεν έχει σχέση με το ssh/PuTTY. Το screen το τρέχει κάλιστα κάποιος και όταν έχει ανοίξει τοπικά μια κονσόλα (είτε pure είτε μέσα από desktop) σε ένα Linux μηχανάκι.
Το σκεπτικό είναι ότι μόλις ανοίξεις την κονσόλα σου (είτε τοπικά είτε μέσω ssh/PuTTY) το πρώτο που κάνεις είναι να τρέξεις ένα screen.
Αυτομάτως δημιουργείται ένα ξέχωρο περιβάλλον που μπορείς όποτε θες το session του screen που άνοιξες (ας το λέμε στο εξής "σκρηνοκονσόλα"), να το πας στο background με Ctrl+Alt+D.
1. Μπορείς να ανοίγεις όσα screen θες.
2. Μην ανοίγεις screen μέσα σε άλλο screen (nested). Μόνο στην αρχική "παρθένα" κονσόλα".
3. Βασικές εντολές:
Κώδικας:screen -ls
Κώδικας:screen -r <5ψήφιος>
Κώδικας:screen -dR <5ψήφιος>
Αυτά.
-
02-06-15, 19:06 Απάντηση: terminal command to background #14
-
02-06-15, 19:14 Απάντηση: terminal command to background #15
Αμφιβάλλω αν θα βρεις κάτι τόσο εύκολο στη χρήση, και συνάμα τόσο δοκιμασμένο και τόσο αξιόπιστο.
Θυμήσου μόνο όπου ορίσεις τα shell aliases για τον χρήστη σου (μπορεί να είναι το .bashrc, το .bash-profile, το .profile κλπ.) να βάλεις το παρακάτω:
Κώδικας:alias screen='screen -i -U'
Επίσης έχε υπόψη ότι ανάλογα με τη διανομή/συσκευή και το shell που τρέχει (π.χ. bash, ash κλπ.) μπορεί να χρειάζονται τα παρακάτω:
- κάποιο αρχείο .screenrc στο ~ του χρήστη σου (φυσικά και στο /root αν θες να τρέχεις και σαν root)
- ανάλογα με τη διανομή/συσκευή, μερικές φορές για να διαβαστούν οι ρυθμίσεις (π.χ. .bashrc) μέσα από το screen ΑΦΟΥ μόλις έχει ξεκινήσει το screen, δεν αρκούν αυτά τα αρχεία ρυθμίσεων (π.χ. το .bashrc). Μερικές φορές χρειάζεται οι ρυθμίσεις αυτές να δηλωθούν και στο γενικό /etc/profile της διανομής/συσκευής.
Bookmarks