akis_z80 Δημοσιεύτηκε Ιούνιος 8, 2014 #1 Κοινοποίηση Δημοσιεύτηκε Ιούνιος 8, 2014 Θέλω να τρέχει αυτόματα ένας game server με το που ανοίγω το μηχάνημα. Έφτιαξα ένα πολύ απλό script μέσα στο /etc/init.d με όνομα acServer64 #! /bin/sh# /etc/init.d/acServer64### BEGIN INIT INFO# Provides: acServer64# Required-Start: $network# Required-Stop: $network# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: acServer64### END INIT INFO# The following part carries out specific functions depending on arguments.case "$1" in start) echo "Starting acServer64" cd ~/acServ/ ./acServer_linux_64 ;; stop) echo "Stopping acServer64" killall acServer_linux_64 echo "acServr64 is dead" ;; *) echo "Usage: /etc/init.d/acServer64 {start|stop}" exit 1 ;;esacexit 0 Στη συνέχεια το πρόσθεσα (νομίζω σωστά) με την εντολή: #update-rc.d acServer64 defaults Έκανα reboot αλλά το πρόγραμμα δεν έτρεξε ποτέ.. Αν τρέξω το script χειροκίνητα με ./acServer64 start ο server σηκώνεται κανονικά. Καμιά ιδέα; Link to comment Share on other sites More sharing options...
Guest Ιούνιος 8, 2014 #2 Κοινοποίηση Ιούνιος 8, 2014 τα links έχουν δημιουρθηθεί και δείχνουν στο σωστό script?επίσης owner και permissions είναι οκ? Link to comment Share on other sites More sharing options...
akis_z80 Ιούνιος 8, 2014 Author #3 Κοινοποίηση Ιούνιος 8, 2014 yes.. και στο error log δε βλέπω κάτι.Τελικά βρήκα workaround με τη χρήση του nohup (no hangup). Συνδέομαι με ssh, τρέχω το server, κάνω disconnect και ο server συνεχίζει να τρέχει. Link to comment Share on other sites More sharing options...
ganastasiou Ιούνιος 9, 2014 #4 Κοινοποίηση Ιούνιος 9, 2014 Από το script: cd ~/acServ/Το tilde όταν ξεκινάει ο υπολογιστής είναι στο /root, είναι σωστό το path; Link to comment Share on other sites More sharing options...
akis_z80 Ιούνιος 9, 2014 Author #5 Κοινοποίηση Ιούνιος 9, 2014 Ναι, όταν τρέχω μόνος μου το script είπα ότι δουλεύει κανονικά! Link to comment Share on other sites More sharing options...
ganastasiou Ιούνιος 9, 2014 #6 Κοινοποίηση Ιούνιος 9, 2014 Άλλο πράγμα λέω, το tilde παίρνει την τιμή της $HOME, αν το τρέξεις ως απλός χρήστης τότε είναι άλλη η τοποθεσία, αλλά φαντάζομαι για να λες δουλεύει σωστά είναι στο /root.Άρα για να τρέχει και το script, έχει και execute permissions. Δεν βλέπω λόγ να μην παίζει.Τρέξε την update.rc-d με διακόπτη -f, και δες στο output αν δημιουργεί τα symlinks. Link to comment Share on other sites More sharing options...
trendy Ιούνιος 9, 2014 #7 Κοινοποίηση Ιούνιος 9, 2014 Απόφυγε τη χρήσηcd ~/acServ/ ./acServer_linux_64Καλύτερα δώσε full path, πχ /home/user/acServer_linux_64 Link to comment Share on other sites More sharing options...
akis_z80 Ιούνιος 9, 2014 Author #8 Κοινοποίηση Ιούνιος 9, 2014 @ganastasiou Ναι συγνώμη που δεν το διευκρίνισα για το root! Tα links απ όσο είδα δημιουργήθηκαν κανονικά στα directories etc/rc0.d rc1.d κλπΣτα εμπλεκόμενα αρχεία έδωσα full permissions...Το μήνυμα είναι το εξής: update-rc.d: using dependency based boot sequencingΑπόφυγε τη χρήσηcd ~/acServ/ ./acServer_linux_64Καλύτερα δώσε full path, πχ /home/user/acServer_linux_64To έκανα και αυτό, μάλιστα έβαλα στα $PATH το directory του server γιατί κάποια στιγμή το εκτελέσιμο δεν έβρισκε κάποια cfg, αλλά και πάλι το script δεν γίνεται autorun στην εκκίνηση. Link to comment Share on other sites More sharing options...
trendy Ιούνιος 10, 2014 #9 Κοινοποίηση Ιούνιος 10, 2014 Ποια διανομή χρησιμοποιείς; Στα logs είπες ότι κοίταξες και δεν υπάρχει κάτι; (/var/log/syslog, dmesg , /var/log/messages) Link to comment Share on other sites More sharing options...
akis_z80 Ιούνιος 10, 2014 Author #10 Κοινοποίηση Ιούνιος 10, 2014 Ποια διανομή χρησιμοποιείς; Στα logs είπες ότι κοίταξες και δεν υπάρχει κάτι; (/var/log/syslog, dmesg , /var/log/messages) Καταρχάς να ευχαριστήσω εσένα και όλους τους συμμετέχοντες στο thread για το ενδιαφέρον που δείξατε για το πρόβλημα. Χρησιμοποιώ Debian GNU/Linux 7 (wheezy). Λοιπόν έχω καλά νέα. Άλλαξα στο script το # Required-Start: $network # Required-Stop: $network σε # Required-Start: $all # Required-Stop: $all και ο server σηκώνεται αυτόματα πλέον Link to comment Share on other sites More sharing options...
kezm Ιούνιος 12, 2014 #11 Κοινοποίηση Ιούνιος 12, 2014 Καταρχάς να ευχαριστήσω εσένα και όλους τους συμμετέχοντες στο thread για το ενδιαφέρον που δείξατε για το πρόβλημα. Χρησιμοποιώ Debian GNU/Linux 7 (wheezy).Λοιπόν έχω καλά νέα. Άλλαξα στο script το # Required-Start: $network # Required-Stop: $network σε # Required-Start: $all # Required-Stop: $all και ο server σηκώνεται αυτόματα πλέον Το # δεν αφορά σχόλια; (Εξαιρείται το #!) Δηλαδή αλλάχθηκε κάτι στα σχόλια και έπαιξε;Εγώ αντιμετώπισα το ίδιο πρόβλημα με το auto-start στο utorrent - Αφορούσε Open Media Vault (Debian-wheezy) -Τελικώς δεν σηκώθηκε αυτομάτως ποτέ. Link to comment Share on other sites More sharing options...
Guest Ιούνιος 12, 2014 #12 Κοινοποίηση Ιούνιος 12, 2014 Το # δεν αφορά σχόλια; (Εξαιρείται το #!) Δηλαδή αλλάχθηκε κάτι στα σχόλια και έπαιξε;Εγώ αντιμετώπισα το ίδιο πρόβλημα με το auto-start στο utorrent - Αφορούσε Open Media Vault (Debian-wheezy) -Τελικώς δεν σηκώθηκε αυτομάτως ποτέ. όχι πάντα, ανάλογα έτσι την είχα πατήσει και εγώ σε κάτι configuration files και έβαζα # και νόμιζα ότι τα έκανα σχόλια αλλά αμ δε μέχρι που κρέμασε το service και έψαχνα τα logs και είχα ότι έκανε τις γραμμές με το # ε μετά άλλαξα το # σε ; και όλα οκ οι γραμμές βγήκαν σε σχόλια Link to comment Share on other sites More sharing options...
kezm Ιούνιος 12, 2014 #13 Κοινοποίηση Ιούνιος 12, 2014 Μου κάνει εντύπωση να συμβαίνει αυτό σε shell script, γι' αυτό και ρώτησα. Ξέρεις κανείς να το εξηγήσει; :triniti: Link to comment Share on other sites More sharing options...
trendy Ιούνιος 12, 2014 #14 Κοινοποίηση Ιούνιος 12, 2014 Το # είναι σχόλιο σε αρκετές scripting γλώσσες. Αλλά αυτό είναι init script που περιέχει και άλλες πληροφορίες, εκτός από τις εντολές που είναι να τρέξουν. Καλό είναι αν θέλετε να γράψετε ένα τέτοιο script, να χρησιμοποιείτε το /etc/init.d/skeleton που έχει παράδειγμα init script και απλώς αλλάζετε τις μεταβλητές που σας ενδιαφέρουν. Αλλιώς η quick 'n' dirty λύση είναι να εκτελείτε το script στο rc.local, που εκτελείται αφού έχουν σηκωθεί όλα τα άλλα services. https://wiki.debian.org/LSBInitScripts Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.