C'è un posto preferito per memorizzare un file pid per un demone che viene eseguito come utente?/var/run è il posto standard, ma questo è per un demone utente quindi non ha i privilegi di scrittura lì. Presumibilmente il mio demone verrà avviato da .profile o .bashrc o qualcosa del genere. Lo stai salvando in/tmp una cattiva idea?Memorizzare il file pid per un demone eseguito come utente
risposta
Se è in esecuzione per un utente, vediamo, quale tipo di memoria esiste che è specifica dell'utente.
Hmmm.
Questo è tutto! La directory principale. Sapevo che sarebbe venuto da me alla fine :-)
Ci scusiamo per il colpo di luce. Scherzi a parte, vorrei solo riporre il PID in $HOME/.daemon.pid
o ~/.daemon.pid
(come il nome del file è fino a voi, naturalmente).
Questo ovviamente presuppone che sia in esecuzione un solo daemon per un utente. In caso contrario, dovrai essere un po 'più complicato.
E si spera placare le tue paure che un utente inavvertitamente eliminare file sconosciuti nella loro home directory, è per questo che si rendono "nascosto" iniziando con un carattere .
.
La maggior parte degli utenti non esperti non dovrebbe mai nemmeno vedere e gli utenti esperti dovrebbero sapere meglio di non intromettersi con loro.
Bene l'utente vede la directory Hom, e penso che sarebbero più propensi a eliminare il file se lo vedono in ~ non sapendo cosa fosse – Falmarri
@Falmarri: E qual è il pericolo in questo? Se hai davvero bisogno del PID, puoi sempre guardare nella tabella dei processi. Il file PID è solo una comodità. –
Ecco perché si mette un '.' di fronte ad esso. Gli utenti che non sanno quello che stanno facendo probabilmente non sapranno nemmeno che esiste. E se vedono regolarmente i file nascosti, un solo errore che cancella '.bashrc' insegnerà loro l'errore dei loro modi :-) Se sei veramente _ paranoico, metti il PID in ~ ~/.dont_EVER_delete_me_or_you_WILL_be_sorry/.daemon.pid' . – paxdiablo
Suggerisco di andare per una sottodirectory all'interno della home directory dell'utente.
~/.programname/.pid
Se ci sono dei altri dati di configurazione utente, è possibile memorizzare che anche qui, al fine di evitare di ingombrare la directory home.
Il XDG Basedir specification definisce dove è necessario memorizzarli.
La variabile $XDG_RUNTIME_DIR
definisce la sua posizione, anche se non ha alcun valore predefinito.
Il fallback più comune (se la variabile non è impostata) è /tmp/service-$USER.id
.
Questo aiuta a mantenere directory home ordinato, pur mantenendo tutti i dati di runtime in
- 1. Come acquisire il pid di un demone linux eseguito da init.d
- 2. Come specificare le log di demone e le directory pid?
- 3. Disabilitare il file Pid per il celibato
- 4. Il demone dello chef viene eseguito ogni 30 minuti
- 5. Come memorizzare un HashTable nelle impostazioni utente?
- 6. MacOS: forzare manualmente un demone per avviare
- 7. cos'è un demone adb?
- 8. Come memorizzare campi utente personalizzati nel database
- 9. Come ottenere il PID figlio in C?
- 10. Come memorizzare un'immagine come immagine del profilo di un utente?
- 11. Posso avere qualche codice eseguito costantemente all'interno di Django come un demone
- 12. Dove memorizzare i file .properties per Java?
- 13. Come dovrei memorizzare i dati per utente in WinForms?
- 14. Crea un utente per l'esecuzione di un demone, su MacOS X?
- 15. Come usare/avviare il demone gradle su un Mac?
- 16. Come interrompere un file Jar eseguito
- 17. C'è un modo per aprire il file con emacsclient (utente) ma con il permesso di root?
- 18. È saggio usare PHP per un demone?
- 19. Chiudere un file batch dopo aver eseguito il file jar
- 20. Come non memorizzare nella cache un controllo utente ASP.NET?
- 21. Quale utente viene eseguito da asp classico?
- 22. Come avviare phoenix.server come demone
- 23. Ubuntu, upstart e creazione di un pid per il monitoraggio
- 24. Come posso creare un Demone Java
- 25. Come creare un processo demone in Golang?
- 26. Dato un PID figlio come si può ottenere il PID genitore
- 27. Errore durante l'utilizzo del modulo multiprocessing in un demone pitone
- 28. Come memorizzare un file con estensione di file con multer?
- 29. come memorizzare java.util.prefs.Preferenze nel file?
- 30. memorizzare le impostazioni utente nella cartella dell'applicazione
Salvataggio in/tmp non va bene dal momento che ogni convenzione di denominazione che ci si inventa (ad esempio '/ tmp// .pid') potrebbe essere già utilizzato da un'altra app e non sarà possibile creare il file. Utilizzando un dirname casuale sotto '/ tmp' rovina l'idea di file di pid - per essere in grado di ottenere il pid rapidamente senza la scansione della lista dei processi. –