Jump to content



Autorun εφαρμογής σε Debian


akis_z80

Recommended Posts

Θέλω να τρέχει αυτόματα ένας 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
;;
esac

exit 0

Στη συνέχεια το πρόσθεσα (νομίζω σωστά) με την εντολή:


#update-rc.d acServer64 defaults

Έκανα reboot αλλά το πρόγραμμα δεν έτρεξε ποτέ..

Αν τρέξω το script χειροκίνητα με

./acServer64 start

ο server σηκώνεται κανονικά.

Καμιά ιδέα; :unsure:

Link to comment
Share on other sites

Άλλο πράγμα λέω, το tilde παίρνει την τιμή της $HOME, αν το τρέξεις ως απλός χρήστης τότε είναι άλλη η τοποθεσία, αλλά φαντάζομαι για να λες δουλεύει σωστά είναι στο /root.

Άρα για να τρέχει και το script, έχει και execute permissions. Δεν βλέπω λόγ να μην παίζει.

Τρέξε την update.rc-d με διακόπτη -f, και δες στο output αν δημιουργεί τα symlinks.

Link to comment
Share on other sites

@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_64

To έκανα και αυτό, μάλιστα έβαλα στα $PATH το directory του server γιατί κάποια στιγμή το εκτελέσιμο δεν έβρισκε κάποια cfg, αλλά και πάλι το script δεν γίνεται autorun στην εκκίνηση.

Link to comment
Share on other sites

Ποια διανομή χρησιμοποιείς; Στα 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 σηκώνεται αυτόματα πλέον :T:

Link to comment
Share on other sites

Καταρχάς να ευχαριστήσω εσένα και όλους τους συμμετέχοντες στο thread για το ενδιαφέρον που δείξατε για το πρόβλημα. Χρησιμοποιώ Debian GNU/Linux 7 (wheezy).

Λοιπόν έχω καλά νέα. Άλλαξα στο script το


# Required-Start: $network
# Required-Stop: $network

σε


# Required-Start: $all
# Required-Stop: $all

και ο server σηκώνεται αυτόματα πλέον :T:

Το # δεν αφορά σχόλια; (Εξαιρείται το #!) Δηλαδή αλλάχθηκε κάτι στα σχόλια και έπαιξε;

Εγώ αντιμετώπισα το ίδιο πρόβλημα με το auto-start στο utorrent - Αφορούσε Open Media Vault (Debian-wheezy) -Τελικώς δεν σηκώθηκε αυτομάτως ποτέ. :o

Link to comment
Share on other sites

Το # δεν αφορά σχόλια; (Εξαιρείται το #!) Δηλαδή αλλάχθηκε κάτι στα σχόλια και έπαιξε;

Εγώ αντιμετώπισα το ίδιο πρόβλημα με το auto-start στο utorrent - Αφορούσε Open Media Vault (Debian-wheezy) -Τελικώς δεν σηκώθηκε αυτομάτως ποτέ. :o

όχι πάντα, ανάλογα

έτσι την είχα πατήσει και εγώ σε κάτι configuration files και έβαζα # και νόμιζα ότι τα έκανα σχόλια αλλά αμ δε

μέχρι που κρέμασε το service και έψαχνα τα logs και είχα ότι έκανε τις γραμμές με το #

ε μετά άλλαξα το # σε ; και όλα οκ οι γραμμές βγήκαν σε σχόλια

Link to comment
Share on other sites

Το # είναι σχόλιο σε αρκετές 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

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.