Package: sysvinit Version: 2.87dsf-8 Severity: normal Tags: patch /etc/init.d/rc calls /sbin/startpar to run /etc/init.d scripts in parallel. Any scripts which return codes 5 or 6 will be marked as "skipped", which is reported to the console by rc as:
startpar: service(s) skipped: service This does not even imply that startpar attempted to start the service, and leads the user to investigate why startpar "skipped" the service, not why the service itself is terminating incorrectly. As per the LSB, codes 5 and 6 are: 5 program is not installed 6 program is not configured For both of these codes, startpar currently outputs "skipped_service=" and the names of services. rc eval's this output and prints the services to console with the above error. The attached patch causes startpar to return "skipped_service_not_installed=" and "skipped_service_not_configured=", and correspondingly changes rc to look for these names, and print a more descriptive message. -- System Information: Debian Release: squeeze/sid APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.30-2-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages sysvinit depends on: ii initscripts 2.87dsf-8 scripts for initializing and shutt ii libc6 2.11.2-2 Embedded GNU C Library: Shared lib ii libselinux1 2.0.96-1 SELinux runtime shared libraries ii libsepol1 2.0.41-1 SELinux library for manipulating b ii sysv-rc 2.87dsf-8 System-V-like runlevel change mech ii sysvinit-utils 2.87dsf-8 System-V-like utilities sysvinit recommends no packages. sysvinit suggests no packages. -- debconf-show failed
Index: rc =================================================================== --- rc (revision 1961) +++ rc (working copy) @@ -133,12 +133,17 @@ log_failure_msg "startpar: service(s) returned failure: $failed_service" fi - if [ -n "$skipped_service" ] + if [ -n "$skipped_service_not_installed" ] then - log_warning_msg "startpar: service(s) skipped: $skipped_service" + log_warning_msg "startpar: service(s) skipped, program is not installed: $skipped_service_not_installed" fi - unset failed_service skipped_service + if [ -n "$skipped_service_not_configured" ] + then + log_warning_msg "startpar: service(s) skipped, program is not configured: $skipped_service_not_configured" + fi + + unset failed_service skipped_service_not_installed skipped_service_not_configured } ;; none|*)
--- a/makeboot.c (revision 1961) +++ b/makeboot.c (working copy) @@ -485,10 +485,10 @@ } } printf("\"\n"); - printf("skipped_service=\""); + printf("skipped_service_not_installed=\""); i = r = 0; for (i = 0; i < tree_entries; i++) { - if (resvec[i] == 5 || resvec[i] == 6) { + if (resvec[i] == 5) { if (r) printf(" "); printf("%s", nodevec[i]->name); @@ -496,6 +496,17 @@ } } printf("\"\n"); + printf("skipped_service_not_configured=\""); + i = r = 0; + for (i = 0; i < tree_entries; i++) { + if (resvec[i] == 6) { + if (r) + printf(" "); + printf("%s", nodevec[i]->name); + r++; + } + } + printf("\"\n"); } #if DEBUG