1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: entries from November
2013</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"11.rss" type=
"application/rss+xml" />
15 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
22 <h3>Entries from November
2013.
</h3>
26 <a href=
"http://people.skolelinux.org/pere/blog/Debian_init_d_boot_script_example_for_rsyslog.html">Debian init.d boot script example for rsyslog
</a>
32 <p>If one of the points of switching to a new init system in Debian is
33 <a href=
"http://thomas.goirand.fr/blog/?p=147">to get rid of huge
34 init.d scripts
</a>, I doubt we need to switch away from sysvinit and
35 init.d scripts at all. Here is an example init.d script, ie a rewrite
36 of /etc/init.d/rsyslog:
</p>
39 #!/lib/init/init-d-script
42 # Required-Start: $remote_fs $time
43 # Required-Stop: umountnfs $time
44 # X-Stop-After: sendsigs
45 # Default-Start:
2 3 4 5
47 # Short-Description: enhanced syslogd
48 # Description: Rsyslog is an enhanced multi-threaded syslogd.
49 # It is quite compatible to stock sysklogd and can be
50 # used as a drop-in replacement.
52 DESC="enhanced syslogd"
53 DAEMON=/usr/sbin/rsyslogd
56 <p>Pretty minimalistic to me... For the record, the original sysv-rc
57 script was
137 lines, and the above is just
15 lines, most of the meta
60 <p>How to do this, you ask? Well, one create a new script
61 /lib/init/init-d-script looking something like this:
66 # Define LSB log_* functions.
67 # Depend on lsb-base (
>=
3.2-
14) to ensure that this file is present
68 # and status_of_proc is working.
69 . /lib/lsb/init-functions
72 # Function that starts the daemon/service
78 #
0 if daemon has been started
79 #
1 if daemon was already running
80 #
2 if daemon could not be started
81 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test
> /dev/null \
83 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
86 # Add code here, if necessary, that waits for the process to be ready
87 # to handle requests from services started subsequently which depend
88 # on this one. As a last resort, sleep for some time.
92 # Function that stops the daemon/service
97 #
0 if daemon has been stopped
98 #
1 if daemon was already stopped
99 #
2 if daemon could not be stopped
100 # other if a failure occurred
101 start-stop-daemon --stop --quiet --retry=TERM/
30/KILL/
5 --pidfile $PIDFILE --name $NAME
103 [ "$RETVAL" =
2 ] && return
2
104 # Wait for children to finish too if this is a daemon that forks
105 # and if the daemon is only ever run from this initscript.
106 # If the above conditions are not satisfied then add some other code
107 # that waits for the process to drop all resources that could be
108 # needed by services started subsequently. A last resort is to
109 # sleep for some time.
110 start-stop-daemon --stop --quiet --oknodo --retry=
0/
30/KILL/
5 --exec $DAEMON
111 [ "$?" =
2 ] && return
2
112 # Many daemons don't delete their pidfiles when they exit.
118 # Function that sends a SIGHUP to the daemon/service
122 # If the daemon can reload its configuration without
123 # restarting (for example, when it is sent a SIGHUP),
124 # then implement that here.
126 start-stop-daemon --stop --signal
1 --quiet --pidfile $PIDFILE --name $NAME
131 scriptbasename="$(basename $
1)"
132 echo "SN: $scriptbasename"
133 if [ "$scriptbasename" != "init-d-library" ] ; then
141 NAME=$(basename $DAEMON)
142 PIDFILE=/var/run/$NAME.pid
144 # Exit if the package is not installed
145 #[ -x "$DAEMON" ] || exit
0
147 # Read configuration variable file if it is present
148 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
150 # Load the VERBOSE setting and other rcS variables
155 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
158 0|
1) [ "$VERBOSE" != no ] && log_end_msg
0 ;;
159 2) [ "$VERBOSE" != no ] && log_end_msg
1 ;;
163 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
166 0|
1) [ "$VERBOSE" != no ] && log_end_msg
0 ;;
167 2) [ "$VERBOSE" != no ] && log_end_msg
1 ;;
171 status_of_proc "$DAEMON" "$NAME" && exit
0 || exit $?
173 #reload|force-reload)
175 # If do_reload() is not implemented then leave this commented out
176 # and leave 'force-reload' as an alias for 'restart'.
178 #log_daemon_msg "Reloading $DESC" "$NAME"
182 restart|force-reload)
184 # If the "reload" option is implemented then remove the
185 # 'force-reload' alias
187 log_daemon_msg "Restarting $DESC" "$NAME"
194 1) log_end_msg
1 ;; # Old process is still running
195 *) log_end_msg
1 ;; # Failed to start
205 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}"
>&
2
213 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
214 lot. I did not really polish the approach, so it might not always
215 work out of the box, but you get the idea. I did not try very hard to
216 optimize it nor make it more robust either.
</p>
218 <p>A better argument for switching init system in Debian than reducing
219 the size of init scripts (which is a good thing to do anyway), is to
220 get boot system that is able to handle the kernel events sensibly and
221 robustly, and do not depend on the boot to run sequentially. The boot
222 and the kernel have not behaved sequentially in year.
</p>
228 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
233 <div class=
"padding"></div>
237 <a href=
"http://people.skolelinux.org/pere/blog/Browser_plugin_for_SPICE__spice_xpi__uploaded_to_Debian.html">Browser plugin for SPICE (spice-xpi) uploaded to Debian
</a>
243 <p><a href=
"http://www.spice-space.org/">The SPICE protocol
</a> for
244 remote display access is the preferred solution with oVirt and RedHat
245 Enterprise Virtualization, and I was sad to discover the other day
246 that the browser plugin needed to use these systems seamlessly was
247 missing in Debian. The
<a href=
"http://bugs.debian.org/668284">request
248 for a package
</a> was from
2012-
04-
10 with no progress since
249 2013-
04-
01, so I decided to wrap up a package based on the great work
250 from Cajus Pollmeier and put it in a collab-maint maintained git
251 repository to get a package I could use. I would very much like
252 others to help me maintain the package (or just take over, I do not
253 mind), but as no-one had volunteered so far, I just uploaded it to
254 NEW. I hope it will be available in Debian in a few days.
</p>
256 <p>The source is now available from
257 <a href=
"http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary">http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary
</a>.
</p>
263 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
268 <div class=
"padding"></div>
270 <p style=
"text-align: right;"><a href=
"11.rss"><img src=
"http://people.skolelinux.org/pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
281 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
283 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
285 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
287 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
289 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
291 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
293 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
295 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
297 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
299 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
301 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
2)
</a></li>
308 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
310 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
312 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
314 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
316 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
318 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
320 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
322 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
324 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
326 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
328 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
330 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
337 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
339 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
341 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
343 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
345 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
347 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
349 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
351 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
353 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
355 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
357 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
359 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
366 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
368 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
370 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
372 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
374 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
376 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
378 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
380 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
382 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
384 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
386 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
388 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
395 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
397 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
399 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
401 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
403 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
405 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
407 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
409 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
411 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
413 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
415 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
417 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
424 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
426 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
437 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
439 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
441 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
443 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
445 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
7)
</a></li>
447 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
13)
</a></li>
449 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
451 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
90)
</a></li>
453 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
142)
</a></li>
455 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
10)
</a></li>
457 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
10)
</a></li>
459 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
461 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
225)
</a></li>
463 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
21)
</a></li>
465 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
467 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
12)
</a></li>
469 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
5)
</a></li>
471 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
11)
</a></li>
473 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
37)
</a></li>
475 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
7)
</a></li>
477 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
18)
</a></li>
479 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
8)
</a></li>
481 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
6)
</a></li>
483 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
485 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
3)
</a></li>
487 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
25)
</a></li>
489 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
236)
</a></li>
491 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
156)
</a></li>
493 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
8)
</a></li>
495 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
497 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
45)
</a></li>
499 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
67)
</a></li>
501 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
503 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
505 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
2)
</a></li>
507 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
8)
</a></li>
509 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
511 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li>
513 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
515 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
32)
</a></li>
517 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
519 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
4)
</a></li>
521 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
43)
</a></li>
523 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
3)
</a></li>
525 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
9)
</a></li>
527 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
20)
</a></li>
529 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
1)
</a></li>
531 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
8)
</a></li>
533 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
39)
</a></li>
535 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
537 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
28)
</a></li>
543 <p style=
"text-align: right">
544 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>