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

Δημιουργία Deamon


firewalker

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

Θέλω όταν ξεκινάει το σύστημα να φορτώνεται η εξής εντολή: hidd –server για να ελέγχω τον υπολογιστή με το με το κινητό μέσω bluetooth. Ποιος είναι ο “σωστός” τρόπος να το κάνω; Αυτό που κάνω εγώ είναι να βάλω σε ένα ένα εκτελέσιμο αρχείο την εντολή hidd –server το τοποθετώ στον φάκελο /etc/rc.d και το δηλώνω στο rc.conf στον τομέα με τους Daemons. Όταν ξεκινά ο υπολογιστής φορτώνεται κανονικά η εντολή. Όταν όμως τον κλείνω έχω error στην οθόνη stopping [FAIL].

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

egw 8a proteina na to kaneis me crontab

ena scriptaki pou 8a elegxei ta proccesses an trexei to programma ka8e p.x. 10 lepta. an trexei kanei silent exit, an oxi, tote to kanei start kai sou stelnei mail

efkolo einai, an 8es na sou dwsw perisotera stoixeia

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

Θέλω όταν ξεκινάει το σύστημα να φορτώνεται η εξής εντολή: hidd –server για να ελέγχω τον υπολογιστή με το με το κινητό μέσω bluetooth. Ποιος είναι ο “σωστός” τρόπος να το κάνω; Αυτό που κάνω εγώ είναι να βάλω σε ένα ένα εκτελέσιμο αρχείο την εντολή hidd –server το τοποθετώ στον φάκελο /etc/rc.d και το δηλώνω στο rc.conf στον τομέα με τους Daemons. Όταν ξεκινά ο υπολογιστής φορτώνεται κανονικά η εντολή. Όταν όμως τον κλείνω έχω error στην οθόνη stopping [FAIL][/b'].

 

Υποθέτω ότι θες να το κάνεις στο Arch, έτσι;

Το Arch περιμένει ότι κάθε script θα δέχεται ένα όρισμα, το οποίο θα είναι είτε start είτε stop. Στην εκκίνηση εκτελεί /etc/rc.d/script-name start και στον τερματισμό /etc/rc.d/script-name stop. Γενικά αν ρίξεις μια ματιά στα άλλα scripts, θα δεις ότι η βασική δομή είναι η ακόλουθη:

>
#!/bin/bash
. /etc/rc.conf            #μεταβλητές συστήματος, π.χ. για χρήση χρωμάτων κλπ
. /etc/rc.d/functions     #συναρτήσεις του arch, π.χ. stat_busy, stat_done, κλπ

case $1 in
       start)
       stat_busy "Starting your-service-name"

       Εδώ μπαίνει η εντολή εκκίνησης

       if [[ $? -gt 0 ]]; then
               stat_fail
       else
               add_daemon your-service-name
               stat_done
       fi
       ;;

       stop)
       stat_busy "Stopping your-service-name"
       
       Εντολή και έλεγχοι τερματισμού
       
       stat_done
       ;;
esac

 

Γενικά μπορείς να χρησιμοποιήσεις αυτό το γενικό πλάνο ως αναφορά, και να προσθέσεις και άλλες λειτουργίες (π.χ. restart, status, οτιδήποτε θες).

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

Εγώ έκανα το παρακάτω αλλά όταν δώσω start και μετά stop μου επιστρέφει ένα μήνυμα Can't listen on HID control channel: Address already in use που το βγάζει όταν ο server τρέχει και δώσεις hidd --server. Δουλεύει όμως.

 

>
#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

PID=`pidof /usr/bin/hidd`
case "$1" in
 start)
   stat_busy "Starting HID server"
   hidd
   if [ $? -gt 0 ]; then
     stat_fail
   else
     stat_done
   fi
   ;;
 stop)
   stat_busy "Stopping HID server"
   if [ $? -gt 0 ]; then
     stat_fail
   else
    kill $PID
     stat_done
   fi
   ;;
 *)
esac
exit 0

 

 

Υποθέτω ότι θες να το κάνεις στο Arch' date=' έτσι;

Το Arch περιμένει ότι κάθε script θα δέχεται ένα όρισμα, [/quote']

 

Μόνο για το Arch ισχύει αυτό; Ή για το Linux γενικά;

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

Εγώ έκανα το παρακάτω αλλά όταν δώσω start και μετά stop μου επιστρέφει ένα μήνυμα Can't listen on HID control channel: Address already in use που το βγάζει όταν ο server τρέχει και δώσεις hidd --server. Δουλεύει όμως.

 

Σωστό είναι το script (αν και θα μπορούσες να κάνεις πιο απλά killall hidd). Βασικά γιατί δε χρησιμοποιείς το έτοιμο /etc/rc.d/bluetooth που έχει το arch;

 

Μόνο για το Arch ισχύει αυτό; Ή για το Linux γενικά;

Κάθε διανομή έχει το δικό της σύστημα. Το Arch, όπως και το Slackware και το CRUX, χρησιμοποιεί τα λεγόμενα BSD-style initscripts, και το σύστημα δουλεύει όπως περίπου σου είπα. Οι περισσότερες από τις υπόλοιπες διανομές χρησιμοποιούν System V initscripts, τα οποία κατανέμονται σε directories με βάση τα runlevels, όμως και πάλι παίρνουν όρισμα το start ή stop.

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

Βασικά γιατί δε χρησιμοποιείς το έτοιμο /etc/rc.d/bluetooth που έχει το arch;

 

Ενώ το έχω κάνει configure και με το bluetooth όλες οι αλλαγές αρχείων γίνονται σωστά (μέχρι και το kmobiletools δουλεύει μέσω του hcid.conf και του rfcomm.conf) όταν πάω να κάνω απομακρισμένω ελεγχο μέσω του κινητού αν δεν δώσω hidd --server ή hidd -i hciX bdaddr με τα στοιχεία του κινητού δεν γίνεται τίποτε. Ούτε με το bluemote μπόρεσα να το κάνω να δουλέψει. Μόνο με την παραπάνω εντολή.

 

Και κάτι άλλο γιατί όταν δίνω pidof hidd | kill η kill επιστρέφει λάθος; Δέν πέρνει σαν είσοδο αυτό που επιστρέφει η pidof;

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

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

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

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