/usr/share/lintian/checks/init.d.desc is in lintian 2.5.6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | Check-Script: init.d
Author: Christian Schwarz <schwarz@debian.org>
Abbrev: ini
Type: binary
Info: Check if a binary package conforms to policy with respect to
scripts in /etc/init.d.
Needs-Info: init.d, bin-pkg-control
Tag: duplicate-updaterc.d-calls-in-postinst
Severity: important
Certainty: certain
Info: The <tt>postinst</tt> script calls <tt>update-rc.d</tt> several
times for the same <tt>/etc/init.d</tt> script.
Tag: output-of-updaterc.d-not-redirected-to-dev-null
Severity: wishlist
Certainty: certain
Info: The output messages of the <tt>update-rc.d</tt> command should be
redirected to <tt>/dev/null</tt> because it is currently very chatty
per default.
Tag: preinst-calls-updaterc.d
Severity: important
Certainty: certain
Info: The <tt>preinst</tt> package calls <tt>update-rc.d</tt>. Instead,
you should call it in the <tt>postinst</tt> script.
Ref: policy 9.3.3.1
Tag: duplicate-updaterc.d-calls-in-postrm
Severity: important
Certainty: certain
Info: The <tt>postrm</tt> script calls <tt>update-rc.d</tt> several
times for the same <tt>/etc/init.d</tt> script.
Tag: prerm-calls-updaterc.d
Severity: important
Certainty: certain
Info: The <tt>prerm</tt> package calls <tt>update-rc.d</tt>. Instead,
you should call it in the <tt>postrm</tt> script.
Ref: policy 9.3.3.1
Tag: postrm-does-not-call-updaterc.d-for-init.d-script
Severity: important
Certainty: certain
Info: An <tt>/etc/init.d</tt> script which has been registered in the
<tt>postinst</tt> script is not de-registered in the
<tt>postrm</tt> script.
Ref: policy 9.3.3.1
Tag: postrm-contains-additional-updaterc.d-calls
Severity: important
Certainty: certain
Info: The <tt>postrm</tt> de-registers an <tt>/etc/init.d</tt> script which
has not been registered in the <tt>postinst</tt> script before.
Tag: file-in-etc-rc.d-marked-as-conffile
Severity: important
Certainty: certain
Ref: policy 9.3.3
Info: The symbolic links in <tt>/etc/rc?.d</tt> may not be marked as conffiles.
Tag: init.d-script-not-marked-as-conffile
Severity: important
Certainty: wild-guess
Ref: policy 9.3.2
Info: <tt>/etc/init.d</tt> scripts should be marked as conffiles.
.
This is usually an error, but the Policy allows for managing these files
manually in maintainer scripts and Lintian cannot reliably detect that.
Tag: init.d-script-does-not-implement-required-option
Severity: important
Certainty: certain
Ref: policy 9.3.2
Info: The <tt>/etc/init.d</tt> scripts have to support the following
command line arguments: start, stop, restart, force-reload.
Tag: init.d-script-does-not-implement-optional-option
Severity: wishlist
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: The <tt>/etc/init.d</tt> script does not implement the status
option. This is not required by the Policy, but often requested by
users.
Tag: init.d-script-not-included-in-package
Severity: important
Certainty: certain
Info: The <tt>/etc/init.d</tt> script is registered in the
<tt>postinst</tt> script, but is not included in the package.
Tag: script-in-etc-init.d-not-registered-via-update-rc.d
Severity: normal
Certainty: possible
Info: The package installs an <tt>/etc/init.d</tt> script which is
not registered in the <tt>postinst</tt> script. This is usually a bug,
unless you omit the links intentionally for some reason or create the
links some other way.
Tag: upstart-job-in-etc-init.d-not-registered-via-update-rc.d
Severity: normal
Certainty: possible
Info: The package installs an upstart-job in <tt>/etc/init.d</tt>
which is not registered in the <tt>postinst</tt> script. On
non-upstart systems this is usually a bug, unless you omit the links
intentionally for some reason or create the links some other way.
.
This tag should only be emitted for vendors that do not use upstart
by default (such as Debian). If this tag is emitted by a vendor
using upstart (e.g. Ubuntu), it may be a misconfiguration of their
Lintian vendor profile.
Tag: init.d-script-has-duplicate-lsb-section
Severity: important
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This <tt>/etc/init.d</tt> script has more than one LSB keyword
section. These sections start with <tt>### BEGIN INIT INFO</tt> and end
with <tt>### END INIT INFO</tt>. There should be only one such section
per init script.
Tag: init.d-script-has-unterminated-lsb-section
Severity: important
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This <tt>/etc/init.d</tt> script has an LSB keyword section starting
with <tt>### BEGIN INIT INFO</tt> but either has no matching <tt>### END
INIT INFO</tt> or has lines between those two markers that are not
comments. The line number given is the first line that doesn't look like
part of an LSB keyword section. There must be an end marker after all
the keyword settings and there must not be any lines between those
markers that do not begin with <tt>#</tt>.
Tag: init.d-script-has-duplicate-lsb-keyword
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: The given keyword was set twice in the LSB keyword section in this
<tt>/etc/init.d</tt> script. This is probably a mistake; the behavior of
setting the same keyword twice is undefined.
Tag: init.d-script-has-unknown-lsb-keyword
Severity: minor
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: The given keyword was set in the LSB keyword section in this
<tt>/etc/init.d</tt> script but isn't one of the known LSB keywords and
doesn't begin with <tt>X-</tt>. One of the standard keywords may have
been misspelled.
Tag: init.d-script-has-bad-lsb-line
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This line in the LSB keyword section of an <tt>/etc/init.d</tt>
script doesn't match the required formatting of that section. Note that
keyword settings must start with <tt>#</tt>, a single space, the keyword,
a colon, and some whitespace, followed by the value (if any). Only the
Description keyword allows continuation lines, and continuation lines
must begin with <tt>#</tt> and either a tab or two or more spaces.
Tag: init.d-script-missing-lsb-section
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This <tt>/etc/init.d</tt> script does not have an LSB keyword
section (or the <tt>### BEGIN INIT INFO</tt> tag is incorrect). This
section provides description and runlevel information in a standard
format and provides dependency information that can be used to
parallelize the boot process. Please consider adding it.
Tag: init.d-script-missing-lsb-keyword
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This <tt>/etc/init.d</tt> script has an LSB keyword section, but it
is missing the given required LSB keyword. If the value of this keyword
should be empty, please still include it in the LSB keyword section with
an empty value.
Tag: init.d-script-missing-lsb-short-description
Severity: wishlist
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This <tt>/etc/init.d</tt> script has an LSB keyword section, but it
is missing a Short-Description LSB keyword. This field isn't directly
used currently, but adding it is still a good idea for documentation
purposes.
Tag: init.d-script-missing-lsb-description
Severity: wishlist
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: This <tt>/etc/init.d</tt> script has an LSB keyword section, but
it is missing a Description LSB keyword. This field isn't directly
used currently, but adding it is still a good idea for documentation
purposes.
Tag: init.d-script-has-bad-start-runlevel
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: The given runlevel specified in the Default-Start keyword of the LSB
keyword section of this <tt>/etc/init.d</tt> script isn't one of the
recognized standard runlevels (S, 0, 1, 2, 3, 4, 5, and 6).
Tag: init.d-script-has-bad-stop-runlevel
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: The given runlevel specified in the Default-Stop keyword of the LSB
keyword section of this <tt>/etc/init.d</tt> script isn't one of the
recognized standard runlevels (0, 1, 2, 3, 4, 5, and 6).
Tag: init.d-script-has-conflicting-start-stop
Severity: normal
Certainty: certain
Ref: http://wiki.debian.org/LSBInitScripts
Info: The given runlevel was included in both the Default-Start and
Default-Stop keywords of the LSB keyword section of this
<tt>/etc/init.d</tt> script. Since it doesn't make sense to both start
and stop a service in the same runlevel, there is probably an error in
one or the other of these keywords.
Tag: init-d-script-stops-in-s-runlevel
Severity: normal
Certainty: certain
Info: This <tt>/etc/init.d</tt> script specifies the S runlevel in
Default-Stop in its LSB keyword section. The S runlevel is not a real
runlevel and is only used during boot. There is no way to switch to it
and hence no use for stop scripts for it, so S should be removed from
Default-Stop.
Tag: init.d-script-uses-usr-interpreter
Severity: normal
Certainty: possible
Info: The given <tt>/etc/init.d</tt> script specifies an interpreter in
its shebang located under <tt>/usr</tt>. This means the init script will
fail if run at a point in the boot sequence before the <tt>/usr</tt>
partition has been mounted.
.
It also indicates that the init script may be using a non-essential
interpreter. Since init scripts are configuration files, they may be
left on the system after their package has been removed but not purged.
At that point, the package dependencies are not guaranteed to exist and
the interpreter may therefore not be available.
.
It's generally best to write init scripts using <tt>/bin/sh</tt> or
<tt>/bin/bash</tt> where possible, since they are guaranteed to always be
available.
Tag: init.d-script-sourcing-without-test
Severity: serious
Certainty: possible
Info: The given <tt>/etc/init.d</tt> script seems to be sourcing an
<tt>/etc/default/</tt> file without checking for its existence first.
Files in <tt>/etc/default/</tt> can be deleted by the administrator at
any time, and init scripts are required to handle the situation
gracefully.
Ref: policy 9.3.2
Tag: init.d-script-starts-in-stop-runlevel
Severity: serious
Certainty: certain
Info: This <tt>/etc/init.d</tt> script specifies the 0 or 6 runlevels in
Default-Start in its LSB keyword section. The 0 and 6 runlevels are
meant to only stop services, not to start them. Even if the init script
is doing something that isn't exactly stopping a service, the run-level
should be listed in Default-Stop, not Default-Start, and the script
should perform those actions when passed the <tt>stop</tt> argument.
Tag: init.d-script-provides-virtual-facility
Severity: normal
Certainty: certain
Info: This <tt>/etc/init.d</tt> script indicates in its LSB headers that
it provides a virtual facility, denoted by the dollar sign in front of
the name.
.
This is not the correct way to provide a virtual facility. Instead, the
package should include a file in <tt>/etc/insserv.conf.d</tt>, usually
named after the package, containing:
.
$virtual_facility_name +init-script-name
.
to declare that the named init script provides the named virtual
facility.
Ref: http://wiki.debian.org/LSBInitScripts/DebianVirtualFacilities
Tag: init.d-script-does-not-provide-itself
Severity: minor
Certainty: possible
Info: This <tt>/etc/init.d</tt> script indicates it provides one or
more facilities, but none of the provided facilities match the name of
the init script. In certain cases, it may be necessary to not follow
that convention, but normally init scripts should always provide a
facility matching the name of the init script.
Ref: http://wiki.debian.org/LSBInitScripts
Tag: init.d-script-should-depend-on-virtual-facility
Severity: important
Certainty: possible
Info: The given <tt>/etc/init.d</tt> script depends on a non-virtual
facility that should probably be replaced by a virtual facility. For
example, init scripts should depend on the virtual facility
<tt>$network</tt> rather than the facility <tt>networking</tt>, and the
virtual facility <tt>$named</tt> rather than the specific facility
<tt>bind9</tt>.
.
Properly using virtual facilities allows multiple implementations of the
same facility and accommodates systems where that specific facility may
not be enough to provide everything the script expects.
Tag: init.d-script-possible-missing-stop
Severity: normal
Certainty: possible
Info: The given <tt>/etc/init.d</tt> script indicates it should be
stopped at one of the runlevels 0, 1, or 6 but not at all of them.
This is usually a mistake. Normally, facilities that need to be stopped
at any of those runlevels need to be stopped at all of them.
.
For example, if it is safe for the facility provided by this init script
to be stopped by <tt>sendsigs</tt> at runlevels 0 and 6, there should be
no reason to special case runlevel 1, where <tt>killprocs</tt> would
stop it. If the facility needs special shutdown handling when rebooting
the system (runlevel 6), it probably needs the same handling when
halting the system (runlevel 0) or switching to single-user mode
(runlevel 1).
Tag: init.d-script-missing-start
Severity: normal
Certainty: certain
Info: The given <tt>/etc/init.d</tt> script indicates it should be
started at one of the runlevels 2-5 but not at all of them. This is a
mistake. The system administrators should be given the opportunity to
customize the runlevels at their will.
Ref: policy 9.3.3.1
Tag: init.d-script-missing-dependency-on-remote_fs
Severity: important
Certainty: possible
Info: The given init script seems to refer to <tt>/usr</tt>, possibly
using a file or binary from there. Without a dependency on
<tt>$remote_fs</tt> in Required-Start or Required-Stop, as appropriate,
the init script might be run before <tt>/usr</tt> is mounted or after
it's unmounted.
.
Using Should-Start or Should-Stop to declare the dependency is
conceptually incorrect since the $remote_fs facility is always
available. Required-Start or Required-Stop should be used instead.
Also, please note that $all should not be used in Required-Stop, only
Required-Start.
Ref: http://wiki.debian.org/LSBInitScripts
Tag: init.d-script-missing-dependency-on-local_fs
Severity: important
Certainty: possible
Info: The given init script seems to refer to <tt>/var</tt>, possibly
using a file from there. Without a dependency on <tt>$local_fs</tt> in
Required-Start or Required-Stop, as appropriate, the init script might be
run before <tt>/var</tt> is mounted or after it's unmounted.
.
Using Should-Start or Should-Stop to declare the dependency is
conceptually incorrect since the $local_fs facility is always
available. Required-Start or Required-Stop should be used instead.
Ref: http://wiki.debian.org/LSBInitScripts
Tag: init.d-script-depends-on-unknown-virtual-facility
Severity: serious
Certainty: possible
Info: The given init script declares a dependency on a virtual facility
that is not known to be provided by any init.d script in the archive.
If the dependency can not be satisfied upon the package's
installation, insserv will refuse the activation of the init.d script.
Ref: http://wiki.debian.org/LSBInitScripts
|