<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Eseguire_un_programma_come_daemon_da_un_initscript</id>
	<title>Eseguire un programma come daemon da un initscript - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Eseguire_un_programma_come_daemon_da_un_initscript"/>
	<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Eseguire_un_programma_come_daemon_da_un_initscript&amp;action=history"/>
	<updated>2026-05-05T15:27:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.rvmgroup.it/index.php?title=Eseguire_un_programma_come_daemon_da_un_initscript&amp;diff=9516&amp;oldid=prev</id>
		<title>Gabriele.vivinetto: Created page with &quot;*Utilizzando start-stop-daemon disponibile in stock Debia, non si ha la possibilità di fare il respwan automatico del daemon, in caso termini.  * Utilizzando libslack daemon,...&quot;</title>
		<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Eseguire_un_programma_come_daemon_da_un_initscript&amp;diff=9516&amp;oldid=prev"/>
		<updated>2016-01-29T14:12:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;*Utilizzando start-stop-daemon disponibile in stock Debia, non si ha la possibilità di fare il respwan automatico del daemon, in caso termini.  * Utilizzando libslack daemon,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;*Utilizzando start-stop-daemon disponibile in stock Debia, non si ha la possibilità di fare il respwan automatico del daemon, in caso termini.&lt;br /&gt;
&lt;br /&gt;
* Utilizzando libslack daemon, è possibile utilizzare molte più opzioni, tra cui il respawn&lt;br /&gt;
&lt;br /&gt;
* Installarlo:&lt;br /&gt;
 sudo apt-get install daemon&lt;br /&gt;
&lt;br /&gt;
* Ad esempio, per far partire un programma come daemon, lasciandolo in foreground per test:&lt;br /&gt;
 /usr/bin/daemon --foreground --name=netxetender --respawn --delay=10 --errlog=daemon.err --dbglog=daemon.debug --output=daemon.info --verbose --inherit --chdir=/root -- /usr/sbin/netExtender -u US -p PASS -d domain server.example.com:4433&lt;br /&gt;
&lt;br /&gt;
:* --foreground non mete il comando in background, per fare i test&lt;br /&gt;
:* --name imposta il nome del daemon. Utile per stopparlo ins eguito e come tag dei messaggi in syslog&lt;br /&gt;
:* --respawn fa si che se l&amp;#039;eseguibile si interrompe, venga rilanciato. Provare a fare CTRL-C e si vedrà che verrà rilanciato il comando&lt;br /&gt;
:* --delay riavia il comando dopo un&amp;#039;attesa di x secondi&lt;br /&gt;
:* --errolog invia a syslog gli errori con priorià abc.def&lt;br /&gt;
:* --dbglog invia il debug a syslog&lt;br /&gt;
:* --output: invia stdout e stderr a syslog&lt;br /&gt;
:* --verbose aumenta il logging&lt;br /&gt;
:* --inherit eredita tutte le variabili di ambiente&lt;br /&gt;
:* --chdir si sposta nella directory indicata prima di eseguire il comando&lt;br /&gt;
:* -- percorso/eseguibile -opzioni lancia il comando con le raltive opzioni&lt;br /&gt;
&lt;br /&gt;
* Fermare quindi il comando precedente con&lt;br /&gt;
 /usr/bin/daemon --stop --name=netxetender&lt;br /&gt;
&lt;br /&gt;
* Ecco un esempio di script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:		netextender&lt;br /&gt;
# Required-Start:	$remote_fs $syslog&lt;br /&gt;
# Required-Stop:	$remote_fs $syslog&lt;br /&gt;
# Default-Start:	2 3 4 5&lt;br /&gt;
# Default-Stop:		&lt;br /&gt;
# Short-Description:	NetExtender VPN Daemon&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
set -e&lt;br /&gt;
&lt;br /&gt;
export HOME=&amp;quot;/root&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# /etc/init.d/netextender: start and stop the NetExtender daemon&lt;br /&gt;
&lt;br /&gt;
test -x /usr/sbin/netExtender || exit 0&lt;br /&gt;
&lt;br /&gt;
umask 022&lt;br /&gt;
&lt;br /&gt;
. /lib/lsb/init-functions&lt;br /&gt;
&lt;br /&gt;
if test -f /etc/default/netextender; then&lt;br /&gt;
    . /etc/default/netextender&lt;br /&gt;
	NETEXT_OPTS=&amp;quot; --dns-only-local -u ${NETEXT_USERNAME} -p ${NETEXT_PASSWORD} -d ${NETEXT_DOMAIN} ${NETEXT_SERVER}&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
	log_action_msg &amp;quot;Default file not present. Aborting&amp;quot; || true&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$2&amp;quot; ]; then&lt;br /&gt;
    NETEXT_OPTS=&amp;quot;$NETEXT_OPTS $2&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Are we running from init?&lt;br /&gt;
run_by_init() {&lt;br /&gt;
    ([ &amp;quot;$previous&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$runlevel&amp;quot; ]) || [ &amp;quot;$runlevel&amp;quot; = S ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
export PATH=&amp;quot;${PATH:+$PATH:}/usr/sbin:/sbin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	log_daemon_msg &amp;quot;Starting NetExtender daemon&amp;quot; &amp;quot;netextender&amp;quot; || true&lt;br /&gt;
	#if start-stop-daemon --start --background --exec /usr/sbin/netExtender -- ${NETEXT_OPTS}; then&lt;br /&gt;
	if  /usr/bin/daemon --name=netxetender --respawn --delay=10 --errlog=daemon.err --dbglog=daemon.debug --output=daemon.info --verbose --inherit --chdir=/root -- /usr/sbin/netExtender ${NETEXT_OPTS}; then&lt;br /&gt;
	    log_end_msg 0 || true&lt;br /&gt;
	else&lt;br /&gt;
	    log_end_msg 1 || true&lt;br /&gt;
	fi&lt;br /&gt;
	;;&lt;br /&gt;
  stop)&lt;br /&gt;
	log_daemon_msg &amp;quot;Stopping Netextender daemon&amp;quot; &amp;quot;netextender&amp;quot; || true&lt;br /&gt;
	#if start-stop-daemon --stop --retry 30 --exec /usr/sbin/netExtender -- ${NETEXT_OPTS}; then&lt;br /&gt;
	if /usr/bin/daemon --stop --name=netxetender; then&lt;br /&gt;
	    log_end_msg 0 || true&lt;br /&gt;
	else&lt;br /&gt;
	    log_end_msg 1 || true&lt;br /&gt;
	fi&lt;br /&gt;
	;;&lt;br /&gt;
&lt;br /&gt;
  status)&lt;br /&gt;
	log_daemon_msg &amp;quot;Checking NetExtender daemon&amp;quot; &amp;quot;netextender&amp;quot; || true&lt;br /&gt;
	if /usr/bin/daemon --running --name=netxetender; then&lt;br /&gt;
	    log_end_msg 0 || true&lt;br /&gt;
	else&lt;br /&gt;
	    log_end_msg 1 || true&lt;br /&gt;
	fi&lt;br /&gt;
	;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  *)&lt;br /&gt;
	log_action_msg &amp;quot;Usage: /etc/init.d/netextender {start|stop|status}&amp;quot; || true&lt;br /&gt;
	exit 1&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gabriele.vivinetto</name></author>
	</entry>
</feed>