Jesse Smith
c03e2fac2b
Added fix to pidof which re-enabled the omit (-o) flag.
...
this was broken when formatting was added in the 2.92 release.
Closes Debian bug #914494 .
2018-11-23 18:00:23 -04:00
Jesse Smith
c679a49aac
Added patch from Samuel Thibault to make project compile
...
on Hurd branch of Debian.
2018-11-19 18:12:13 -04:00
Jesse Smith
5d3815b0ff
Added manual page and options for readbootlog.
2018-11-12 20:53:52 -04:00
Jesse Smith
7c1a8d932a
Added new tool (readbootlog) which will read the /var/log/boot file
...
produced by bootlogd. The output is displayed cleaned up so there
are no control characters. This avoids the need to use sed or related
tools to try to clean up the contents of the log.
2018-11-12 20:29:28 -04:00
Jesse Smith
aa6873b85b
Removed typos from pidof manual page and killall5 page.
...
Closes Debian bugs #815839 , #905245 and #890478
Added -f <format> option to pidof program to allow printf
style formating.
Closes Debian bug #571590
Thanks to Philipp Marek for the patch.
2018-11-10 21:27:11 -04:00
Jesse Smith
2ece2c0364
Updated src/Makefile to confirm we build all the necessary software
...
prior to trying to install it.
2018-11-07 17:24:55 -04:00
Jesse Smith
848ee05104
Updated init manual page to include GRUB in boot loader comment
...
as LILO is rarely used outside of the Slackware family these days.
Switched stty flags to use ECHOE instead of ECHOPRT. This should
give smoother, more natural backspac-erase behaviour on emergency
consoles. (Created in init -b mode.)
2018-11-05 23:15:11 -04:00
Jesse Smith
c45219c64f
Added -q and -Q flags to shutdown command to make the "system is going down"
...
message appear less often. The -q flag causes messages to only appear at the
10 minute, 5 minute and x-hour intervals.
The -Q flag maintains complete silence up until the final "now" warning.
2018-11-01 17:21:47 -03:00
Jesse Smith
44fce86dde
Added -l flag to "last" command. When used it allows "last" to
...
display usernames longer than 8 characters long.
2018-10-30 21:46:04 -03:00
Jesse Smith
be8e6b9e1c
shutdown command was setting environment variable INIT_HALT to
...
"POWERDOWN", this should have been "POWERDOWN" as specified in the
manual page. Fixed code to match manual page and init scripts.
2018-10-28 16:19:26 -03:00
Jesse Smith
a17f736a42
Applied patch from Regid Ichira to clarify shutdown command
...
line options. Updated manual page for shutdown.
Closes Debian bug #630661 .
2018-10-27 20:37:47 -03:00
Jesse Smith
1b659c8ebe
Applied patch from Daniel Povey which should allow killall5/pidof to
...
avoid locking up if it encounters stopped or zombie processes
due to broken NFS mount points.
This should allow Debian bug #719273 to be closed.
2018-10-27 20:26:15 -03:00
Jesse Smith
ed85143837
Removed super loud PC speaker beep during shutdown.
...
Closes Debian bug #614893 . Patch from Andreas Fackler.
2018-10-22 22:03:09 -03:00
Jesse Smith
d27e34754a
Unified shutdown and init to use 3 second wait between SIGTERM and
...
SIGKILL. Defined this value in init.h (WAIT_BETWEEN_SIGNALS) for
easy modification.
Updated documentation to address Debian bug #375274 .
2018-10-22 21:44:39 -03:00
Jesse Smith
7b1d470949
Added check for kernel parameter init.autocon=1. If this exists, then
...
init will try to open its own console. If not, then any console=
parameters will be ignored. This avoids conflicts with native kernel
created consoles.
2018-09-29 17:12:12 -03:00
Jesse Smith
f1ca96e1c1
Added patch from Walter Harms which allows pidof to run without
...
displaying output. In this mode pidof simply returns true or false
without displaying PID values.
Updated manual page with new -q (quiet) mode.
Added -h flag for pidof, which was recognized before, but not used.
The -h flag now displays brief usage information for pidof.
2018-09-08 17:19:21 -03:00
Jesse Smith
6e8323e9fb
The init process now writes the current runlevel to /var/run/runlevel.
...
This information can be read by the "runlevel" command as well as "halt"
and "reboot". Having the information logged in /var/run/runlevel as
well as the utmp file means systems without utmp (like those running
the musl C library) can still check the current runlevel. This is
useful when running halt/reboot as these programs want to check the
runlevel.
Updated the changelog, and manual pages for halt and runlevel.
2018-07-07 20:19:03 -03:00
Jesse Smith
6b26692584
Added new runlevel log code which saves (and reads) the current runlevel
...
from /var/run/runlevel. Added test code to runlevel.c to confirm it works.
Will use this to save/restore runlevel on systems where utmp is not
available.
2018-07-07 18:49:04 -03:00
Jesse Smith
7656f9d5f9
Version information is now fetched and defined by the Makefile.
...
No more need to update the version manually in the init.c source.
2018-07-01 18:44:57 -03:00
Jesse Smith
4438de4e50
Added --version flag to init and updated manual page.
2018-06-22 17:04:47 -03:00
Jesse Smith
2a61e2b029
Adjusted order of compile flags to make it possible to select optimization
...
level by setting CFLAGS at compile file.
2018-06-21 20:22:44 -03:00
Jesse Smith
40f40a4166
Removed DATE define from init.c, not needed anymore.
...
Updated Changelog in prep for release.
2018-06-18 19:35:53 -03:00
Jesse Smith
c229965b62
Fixed typo. Corrected by Radostin Stoyanov.
2018-06-11 13:06:04 -03:00
Jesse Smith
2d6d2bc0d3
Updated toplevel Makefile to avoid created unnecessary temporary
...
directories when they are not wanted/required.
2018-06-03 20:14:01 -03:00
Jesse Smith
108b31e284
Switched from using -fstack-protector to -fstack-protector-strong compile
...
flag. Tested with both GCC and Clang.
2018-06-02 16:50:35 -03:00
Jesse Smith
56e1041034
Updated Makefile and version information.
2018-05-20 17:21:18 -03:00
Jesse Smith
bed25016b1
Updated sulogin.c to pull in crypt.h as it is a new, undocumented
...
dependency on Fedora 28.
Confirmed we can still build on other/older platforms.
2018-05-09 17:55:35 -03:00
Jesse Smith
828c2704a1
Removed old LSM file.
...
Added .gitignore files to avoid git tracking object files.
Removed old start-stop-daemon from contrib directory.
2018-05-04 22:08:38 -03:00
Jesse Smith
e0cfd39728
Added "Fall through" comments to some switch statements where multiple
...
approaches are tried in order to prevent warnings from GCC 7 (and newer).
Added includes on Linux for sys/sysmacros.h as the old defines in
the sys/types.h file will be removed in the future.
2018-05-04 14:51:40 -03:00
Jesse Smith
cfb39b573f
Updated init.c to remove some old notes and answer questions
...
that were flagged in comments or FIXME labels.
2018-04-23 00:09:49 -03:00
Jesse Smith
272f112c98
Added new signal handler for SIGUSR2. When init receives SIGUSR2
...
it closes (and leaves closed) the named pipe /run/initctl. This
can be used to make sure init does not have any files open. However,
it also means we cannot switch run levels or bring down the system.
The pipe can be re-opened by sending init the SIGUSR1 signal.
Updated the man pages for initctl and init to include this information.
2018-04-17 19:44:50 -03:00
Jesse Smith
f09da9cb55
Add check to make sure /run/initctl is open before we try to close
...
it when receiving SIGUSR1. Avoids crashing upon receiving signal.
2018-04-15 14:09:33 -03:00
Jesse Smith
aee28b3292
Updated init page to reference the initctl manual page instead of
...
telling people to read the source code to learn how to use
the /run/initctl named pipe. Updated Makefile to install
the initctl.5 manual page.
2018-04-14 19:19:18 -03:00
Jesse Smith
a4508479f5
Updated shutdown to check if time has lapsed when we did not
...
notice. For example if the computer was in sleep mode pending
a shutdown. The shutdown command now notices time has past
and adjusts its countdown clock to compensate. Accurate
to the nearest minute.
Closes Savannah bug #36279
2018-04-04 23:12:25 -03:00
Jesse Smith
d9b6475d85
Removed unneeded "count" variable in utmpdump.c.
...
Fixed typo in accidental wrote_wtmp_rlevel == 0 || wrote_wtmp_rlevel
comparison so the latter is wrote_utmp_rlevel.
Simplified logic in mountpoint.c when testing for same device or same inode.
Thanks to David Binderman for pointing out the above three issues.
2018-03-30 22:15:04 -03:00
Jesse Smith
8c8172349e
Updated mountpoint to search for circular mount points when using
...
the -p parameter. This works around mountpoint not recognizing
circular mounts where /a/b/c/d and /a/b are the same location
(ie the same device and same inode).
Closes Savannah bug #37114 .
2018-03-07 16:25:53 -04:00
Jesse Smith
2e1f87635e
Removed extra sleep() calls from shutting down process since we use
...
sync() anyway to pause and make sure data is written out to disk.
2018-02-22 21:07:51 -04:00
Jesse Smith
2b651b469e
Fixed Clang compiler warning when calling sprintf() with
...
variable number of data parameters.
2018-02-21 18:05:58 -04:00
Jesse Smith
c6f29e96c0
Cleared up compiler warnings from unused variables and findtty()
...
function in bootlogd.c
2018-02-20 19:40:14 -04:00
Jesse Smith
1d24d576f1
Add fscanf checks to init.c to warn us if calls fail.
...
Mostly to clean up compiler warnings.
2018-02-20 19:38:40 -04:00
Jesse Smith
d21c8fc44b
Perform error check on setuid() call in shutdown as manual page suggests.
2018-02-20 19:37:29 -04:00
Jesse Smith
6a8a216449
Fix typo in killall5.c and move initscript.sample file
...
from source tree into "doc" directory.
2018-02-20 19:36:21 -04:00
Jesse Smith
986bee63c0
Allow multiple console output
...
When booting a kernel with multiple serial console support, or multuiple
console arguments ala "console=tty1 console=ttyS0,9600" the kernel will output
messages to all consoles, init however will not. It will only send output to,
and accept input from, the last of the consoles.
This patch fixes it.
(Author is Martin Buck.)
2018-02-20 19:34:45 -04:00
Jesse Smith
f52d703c8e
Updated bootlogd and init to better compile and run on GNU/kFreeBSD.
2018-02-20 19:30:46 -04:00
Jesse Smith
80dbcf3de3
Moved the named communication pipe from /dev/initctl to /run/initctl. This
...
patch was supplied by Robert Millan from Debian. FreeBSD apparently does not
like named piped in /dev, so we move it to /run for better cross-platform
compatibility.
2018-02-20 19:29:08 -04:00
Jesse Smith
efa6fefa8e
Applied Debian patches to update init Makefile, halt and init documentation.
2018-02-20 19:26:09 -04:00
Jesse Smith
6e3e87bf32
Patch to automatically spawn agetty on kernel consoles
...
The feature is useful for developers and admins that occasionally need
to boot with e.g. console=ttyS0.
The built in default can be overridden via inittab for each device. An
entry like "S0::off:" turns off the getty on ttyS0.
2018-02-20 19:18:58 -04:00
Jesse Smith
e80878c555
Imported patches from Arch Linux's bootlogd to avoid special
...
characters in log file. Also makes parsing easier.
2018-02-20 19:16:42 -04:00
Jesse Smith
3e43bb7ccd
Applied patches provided in Savannah bug report 49991. Fix tabs in
...
bootlogd and avoid printing unitialized "buf" variable when
consolename() fails.
2018-02-20 19:14:36 -04:00
Petter Reinholdtsen
d972463609
Include -Wunreachable-code when building.
2014-02-28 13:18:49 +00:00
Petter Reinholdtsen
ca4561271e
Check exit code from dup() in spawn() and log error if it fail.
...
Patch from Michał Kulling.
2014-02-10 22:47:27 +00:00
Petter Reinholdtsen
d53cccb542
Use narrowly scoped file descriptor for handling opened TTY in
...
spawn(). Patch from Michał Kulling.
2014-02-10 22:44:15 +00:00
Petter Reinholdtsen
da988bb28e
Make it possible to specify the initctl path as a compile time define INIT_FIFO.
2014-02-07 23:27:39 +00:00
Petter Reinholdtsen
303f3465f6
Port ifdown.c to FreeBSD. Patch from Guillem Jover and Debian.
2014-02-07 17:55:37 +00:00
Petter Reinholdtsen
a05987e281
Document length limit for the process field in the inittab. Patch
...
from Johannes Truschnigg and Debian.
2014-02-07 17:41:58 +00:00
Petter Reinholdtsen
1b91c378b9
Adapt bootlogd TIOCCONS call to kfreebsd. Patch from Mats Erik
...
Andersson and Debian.
2014-02-07 17:03:04 +00:00
Petter Reinholdtsen
3f08c42b06
Make sure to report an error if chdir(/) fail.
2014-02-07 13:45:06 +00:00
Petter Reinholdtsen
de1344feb8
Rewrite findtty() in bootlogd.c to not chance working directory, to
...
reduce the amount of failure that can happin in that function.
2014-02-07 11:06:57 +00:00
Petter Reinholdtsen
cc3a4e2f9e
Avoid reusing open file descriptor to make it easier to pinpoint Coverity CID 1164479 resource leak.
2014-02-07 09:50:14 +00:00
Petter Reinholdtsen
6ba8311144
Get more help from gcc, add -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 and -fstack-protector.
2014-02-07 08:00:58 +00:00
Petter Reinholdtsen
a7bf0bf7e9
Remove unused variable realuid from main().
2014-02-07 06:57:11 +00:00
Petter Reinholdtsen
fb143cdcb9
Remove unused variable serial from tcfinal().
2014-02-07 06:55:53 +00:00
Petter Reinholdtsen
b547736c2c
Avoid setting unused value and trick scan-build from clang into not warn about apparenly unused value.
2014-02-05 13:24:18 +00:00
Petter Reinholdtsen
b8e970ca10
Explain why maxsymlinks() exist.
2014-02-05 13:23:08 +00:00
Petter Reinholdtsen
992c7a70d7
No use checkinf if env is true in the branch where it is false (Coverity CID 1164462).
2014-01-28 22:29:30 +00:00
Petter Reinholdtsen
8478327498
Adjust makefile to make it easier to link all binaries statically.
...
Patch from Matias A. Fonzo and Dragora.
2014-01-28 22:11:34 +00:00
Petter Reinholdtsen
5421d713ae
Adjust more included headers to be compatible with the musl C
...
library. Patch from Matias A. Fonzo and Dragora.
2014-01-28 22:07:30 +00:00
Petter Reinholdtsen
834bcebcaf
Use sysconf(_SC_SYMLOOP_MAX) instead of MAXSYMLINKS. If sysconf
...
returns an error, fall back to MAXSYMLINKS on platforms that
define it. Fixes build on Hurd. Patch from Justus Winter and
Debian.
2014-01-28 10:13:10 +00:00
Petter Reinholdtsen
c26aaa4410
Define _XOPEN_SOURCE when building to get crypt() from <unistd.h> instead of using <crypt.h> in sulogin.c, to get the source building with the musl C library.
2014-01-27 22:05:54 +00:00
Petter Reinholdtsen
52b92185de
Move dovoid() macro from #ifdef__GLIBC__ to #ifdef __linux__, to match the condutions of the place where it is used. Thanks to Matias A. Fonzo for noticing.
2014-01-27 21:55:57 +00:00
Petter Reinholdtsen
f11cdf9554
Adjust included headers to be compatible with the musl C library. Patch from Matias A. Fonzo and Dragora.
2014-01-26 22:00:42 +00:00
Petter Reinholdtsen
2d0b513b8a
Make sure FILE pointer returned by hdopen() is not leaked even if the
...
pointer returned can be casted to a negative long value (Coverity CIDs
1164478 and 1164477).
2014-01-26 16:40:03 +00:00
Petter Reinholdtsen
7d6e3683b0
Make sure logintime string can never overflow (Coverity CID 1164485).
2014-01-26 13:38:51 +00:00
Petter Reinholdtsen
ae7c73ec7f
Make sure cmdline string always is null terminated, even if it is very long (Coverity CID 1164484).
2014-01-26 13:29:43 +00:00
Petter Reinholdtsen
1c9808ec42
Close open file descriptor if the version is wrong (Coverity CID 1164481).
2014-01-26 09:58:04 +00:00
Petter Reinholdtsen
568c01bbb5
Document a fall through case block (Coverity CID 1164467).
2014-01-26 09:41:51 +00:00
Petter Reinholdtsen
d2f82534cf
Try harder to find libcrypt.*, even if there is no static library
...
available. Also look in /usr/lib/*/ for the library, to handle
Debian multiarch systems. Based on patch from Andrew Gregory.
2014-01-25 21:57:25 +00:00
Petter Reinholdtsen
45660f6ee6
Rename internal functions warn() and shutdown() in the shutdown
...
binary to avoid surprising dynamic library name resolution
conflict with NSS modules. Patch from Richard Tollerton.
2014-01-25 21:50:09 +00:00
Petter Reinholdtsen
571c45f3e6
Improve message printed when signaling processes to stop. Patch from Matias A. Fonzo at the dragora project.
2014-01-25 21:20:22 +00:00
Werner Fink
1017641f3e
Shutdown: use PATH_DEFAULT as suggested by Paul Arthur in local bug #36101
...
Killall5/pidof: handle strange names of executables (local bug #36252 )
Sulogin: be aware the crypt(3) may fail (local bug #36313 )
2012-10-11 13:10:40 +00:00
Werner Fink
ec06765756
* Do not forget room for last NULL of new environment (was local bug 35866)
2012-03-19 12:50:36 +00:00
Werner Fink
99a0a2583f
* Handle deleted binaries in pidof (was local bug #34992 )
2012-03-16 16:46:06 +00:00
Werner Fink
d1a0609ab0
* Allow init to delte extra environment variables (was local bug
...
#35858 )
* Avoid that init double environment variables for its childs
(was local bug #35855 )
2012-03-16 15:58:21 +00:00
Werner Fink
2f904f7848
fix minor typo
2011-11-14 08:53:05 +00:00
Werner Fink
6fe3edd48c
Add some code to be able to detect programs even as user with
...
kernel 3.0 and above
2011-10-17 12:53:27 +00:00
Werner Fink
4860983f8b
Sulogin: respect byte order that is do not mix chars and ints
2011-07-27 10:49:05 +00:00
Werner Fink
09aa81cdbb
Sulogin: if zero is read at reading the passwd guess it's done.
2011-07-26 12:03:13 +00:00
Werner Fink
eddea371ca
Sulogin: enforce reconnection of stdin/stdout/stderr if a device
...
was specified.
2011-07-26 10:21:13 +00:00
Werner Fink
3cb95c8371
Handle if the mountpoint(1) command is from util-linux 2.20+
2011-07-01 13:56:45 +00:00
Werner Fink
bfca7da0f5
* Remove man-db tag for encoding for canonical man
2011-04-27 13:41:04 +00:00
Werner Fink
4301a57e89
Sulogin: try to detect the real device(s) used for the system console
...
/dev/console if but only if /dev/console is used. On Linux this can
be more than one device, e.g. a serial line as well as a virtual
console as well as a simple printer.
2011-04-04 13:57:54 +00:00
Werner Fink
4201d1d42f
Respect the device an the command line of sulogin
...
as well as the standard input.
2011-04-01 12:45:26 +00:00
Werner Fink
43bc53af8d
Enhance src/consoles.c and src/consoles.h to reflect latest
...
linux kernel possiblities to detect the devices used for
the system console /dev/console
2011-03-31 12:25:34 +00:00
Werner Fink
d9122565a0
* Fix counting message lines in wall. Patch from Petr Lautrbach.
...
* Fix bad printf conversion specifier in wall. Patch from Sébastien Luttringer.
* Add patches from Openwall project. Thanks goes to Solar Designer.
2011-03-15 13:16:55 +00:00
Werner Fink
1ef9e7736c
* Add code to detect the system consoles with the help of the
...
new /proc/consoles files of linux kernel 2.6.38+
2011-03-11 17:29:36 +00:00
Werner Fink
6dacdb9ad0
* Try to make utmpdump IPv6 valid, change based on suggestion from
...
Navdeep Bhatia (see local bug #32429 )
2011-03-11 16:51:07 +00:00
Werner Fink
84e86ebbcd
* Fix signal and alarm handling based on the patch from Florent Viard.
...
(was local bug #32304 )
* Add fix for Redhat bug #573346 : last incorrectly displays IPv6
addresses (was local bug #29497 )
2011-03-11 16:10:42 +00:00
Werner Fink
e1a1f90204
Correct position of string pointer in NFS struct used in killall5/pidof
2010-10-21 09:47:16 +00:00
Werner Fink
5114500187
Add fix for Debian bug #580272
2010-05-17 09:44:34 +00:00
Werner Fink
ba54bb9ac4
Fix sysvinit bug #29758
2010-05-04 07:50:12 +00:00