[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: start-stop-daemon no respeta LSB en init.d



Iñaki Baz Castillo wrote:
Me temo que no has entendido lo que quería decir. Lo que tú dices que
es funcionar bien es precisamente no respetar el LSB:

Si un servicio está funcionando y se intenta ahcer un "start", el
script debería devolver 0 y no 1.
Pero en los servicios de Debian para conseguir ese comportamiento es
necesaria la opción "--oknodo" que MUCHOS servicios NO usan en sus
scripts de init, por lo que no cumplen con la LSB.

Por eso en uno de los bugs que he reportado propongo que el
comportamiento de "start-stop-daemon" sea POR DEFECTO el mismo que
ahora cuando se incluye la opción "--oknodo", y de hecho que esa
opción se elimine porque sería el comportamiento por defecto, lo que
haría que muchos scrips de servicios cumpliesen mejor con la LSB.

Saludos.

Entonces con este parche se haría lo que tú propones, aunque yo uso sid ( dpkg-1.14.4 )

Saludos.
Javi.

--- utils/start-stop-daemon.c	2007-05-15 14:33:25.000000000 +0200
+++ utils/start-stop-daemon.new.c	2007-05-31 19:37:47.000000000 +0200
@@ -117,7 +117,7 @@
 
 static int testmode = 0;
 static int quietmode = 0;
-static int exitnodo = 1;
+static int exitnodo = 0;
 static int start = 0;
 static int stop = 0;
 static int background = 0;
@@ -341,7 +341,7 @@
 "  -m|--make-pidfile             create the pidfile before starting\n"
 "  -R|--retry <schedule>         check whether processes die, and retry\n"
 "  -t|--test                     test mode, don't do anything\n"
-"  -o|--oknodo                   exit status 0 (not 1) if nothing done\n"
+"  -e|--errornodo                exit status 1 (not 0) if nothing done\n"
 "  -q|--quiet                    be more quiet\n"
 "  -v|--verbose                  be more verbose\n"
 "\n"
@@ -351,7 +351,7 @@
 " forever                         repeat remainder forever\n"
 "or <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>\n"
 "\n"
-"Exit status:  0 = done      1 = nothing done (=> 0 if --oknodo)\n"
+"Exit status:  0 = done      0 = nothing done (=> 1 if --errornodo)\n"
 "              3 = trouble   2 = with --retry, processes wouldn't die\n",
 	       VERSION);
 }
@@ -525,7 +525,7 @@
 		{ "version",	  0, NULL, 'V'},
 		{ "startas",	  1, NULL, 'a'},
 		{ "name",	  1, NULL, 'n'},
-		{ "oknodo",	  0, NULL, 'o'},
+		{ "errornodo",	  0, NULL, 'e'},
 		{ "pidfile",	  1, NULL, 'p'},
 		{ "quiet",	  0, NULL, 'q'},
 		{ "signal",	  1, NULL, 's'},
@@ -573,8 +573,8 @@
 		case 'n':  /* --name <process-name> */
 			cmdname = optarg;
 			break;
-		case 'o':  /* --oknodo */
-			exitnodo = 0;
+		case 'e':  /* --errornodo */
+			exitnodo = 1;
 			break;
 		case 'p':  /* --pidfile <pid-file> */
 			pidfile = optarg;

Reply to: