- More info here: http://cr.yp.to/daemontools.html
- Original author: D.J. Bernstein
- github
- version: 0.78.3
daemontools
is a collection of tools for managingUNIX
services. It monitorsqmail
services and saves error messages to one or more logs.
Changelog
- Oct 14, 2024 (version 0.78.3)
- all package/ scripts now run the bash shell
- package/run script will recognize if we are in an lxc container to skip inittab configuration
- package/run.rclocal will find both /etc/rc.local /etc/rc.d/rc.local
- daemontools-0.78.2 directory renamed to daemontools - Oct 9, 2024
- added -ltr to conf-ld to restore compatibility with systems with glibc prior to v. 2.17 like RHEL6/CentOS6, where the librt.so library is not linked - Oct 4, 2024
- version 0.78.1: added package/compile which was missing again! (tx Bai Borko) - Sep 6, 2024
- fixed a .gitignore issue which was preventing the package/compile script upload (thanks Ivelin Topalov) - Jul 29, 2024 (version 0.78)
- multilog prints a readable datetime if used with "d" flag, it prints timestamps if used in the usual way with the "t" flag (80f2133)
- fixed several compilation warnings and/or breaks on gcc-14.1 - Dec 9, 2023
-moved my patched daemontools to github and named 0.77 the new version
-clear service moved to qmail/supervise/clear
multilog
program with human readable datetime
multilog
program has been modified to work both with timestamps and human readable datetimes (commit).The action t
inserts an @, a precise timestamp, and a space in front of each line, using the same format as tai64n
.
Example:
multilog t '-*' '+* fatal: *' ./main
prints the line
@400000003b4a39c23294b13c fatal: out of memory
The action d
inserts a human readable datetime in front of each line and a space.
Example:
multilog d '-*' '+* fatal: *' ./main
prints the line
2024-07-29 10:36:08.811661123 fatal: out of memory
Both flags are required to be the first action.
Other patches applied
The daemontools
that we are going to install contains the following patches to the original djb daemontools-0.76
:
errno
patch-
The
multilog_filesize_limit
patch (thanks to Sam Tang), which extends the file log size limit to 100MB (default is 16MB)
Installation
First of all, let's create the directory /var/qmail which will host qmail
, daemontools
and ucspi-tcp.
mkdir -p /var/qmail
In this guide I will assume that all the source packages have been downloaded into the /usr/local/src folder.
DAEMONTOOLS_VER=0.78.3 SRC=/usr/local/src cd $SRC wget https://github.com/sagredo-dev/daemontools/archive/refs/tags/v${DAEMONTOOLS_VER}.tar.gz tar xzf v${DAEMONTOOLS_VER}.tar.gz
Install daemontools:
cd /var/qmail mkdir admin chmod 1755 admin cd admin cp -rp ${SRC}/daemontools-${DAEMONTOOLS_VER}/admin/daemontools daemontools-${DAEMONTOOLS_VER} cd daemontools-${DAEMONTOOLS_VER} chown -R root:root . package/install
So we have daemontools
in /var/qmail/admin/daemontools
Add the "clear" service, so that you can easily clear the readproctitle service errors
line:
mkdir -p /var/qmail/supervise/clear touch /var/qmail/supervise/clear/down cat > /var/qmail/supervise/clear/run << __EOF__ #!/bin/sh yes '' | head -4000 | tr '\n' . __EOF__ chmod +x /var/qmail/supervise/clear/run
Running daemontools
at boot time
The command /command/svcscanboot will be added in your /etc/inittab. It will be sufficient to run qmail
at boot time.
On systemd
based OS the above command has to be added to rc.local in order to be executed at boot time, supposing that rc.local is executed at boot time, or you can choose to create a specific daemontools.service
as follows:
cat > /etc/systemd/system/daemontools.service << __EOF__ [Unit] Description=Daemontools service supervision ConditionPathExists=/command/svscanboot [Service] ExecStart=/command/svscanboot Restart=always [Install] WantedBy=multi-user.target __EOF__ systemctl enable daemontools.service systemctl start daemontools.service
Comments
daemontools - package/install
Ivelin Topalov October 13, 2024 23:03 CET
daemontools - package/install - puts in rc.local : csh /command/svcscanboot & but the rc.local is driven by bash and csh is not installed by default on ubuntu - so it fails
Reply | Permalink
daemontools - package/install
Roberto Puzzanghera Ivelin Topalov October 14, 2024 17:31 CET
thanks for the hint. Solved in v. 0.78.3
Reply | Permalink
Error while installing daemontools
Shailendra Shukla October 8, 2024 07:13 CET
HI Roberto,
I am facing issue while package/install of daemontools on RHEL6/CentOS6 and below is the error message
Regards
Shailendra
Reply | Permalink
Error while installing daemontools
Roberto Puzzanghera Shailendra Shukla October 8, 2024 10:50 CET
Hi Shailendra,
that clock_gettime function is in the time.h file of the glibc library. Probably it is not linked to the timestamp.c program. Which glibc version do you have? (ldd --version)
Can you modify the src/conf-cc file like this
and run package/install again?
Anyway you can solve installing the original daemontools-0.76 patched with the errno.patch, but please let me know if the above test works for centos 6.10
Reply | Permalink
Error while installing daemontools
Shailendra Shukla Roberto Puzzanghera October 8, 2024 12:18 CET
Hi Roberto,
Tried the hack that you suggested but still getting the same error
Kindly find the output of ldd --version
As suggested by you I tried with daemontools 0.76 and I get the following error
Regards
Shailendra
Reply | Permalink
Error while installing daemontools
Roberto Puzzanghera Shailendra Shukla October 8, 2024 12:54 CET
Sorry for the wrong suggestion I gave before. Use conf-cc and conf-ld like these
conf-cc with no modifications, so
add -lrt to conf-ld
I don't know what's going on for version 0.76
Reply | Permalink
Error while installing daemontools
Shailendra Shukla Roberto Puzzanghera October 9, 2024 07:52 CET
Hi Roberto,
As per your suggesstion modifying the conf-ld with gcc -s -lrt did the trick and I was able to successfully install daemontools 0.78.1 on RHEL6/Centos6.
Thanks for your help
Regards
Shailedra
Reply | Permalink
daemontools-0.78
Nigel Pillay September 5, 2024 10:26 CET
Hello Roberto
Is package/compile script missing from daemontools-0.78 source package?
BTW thanks for all the great work you and others are doing to keep qmail alive.
Reply | Permalink
daemontools-0.78
Roberto Puzzanghera Nigel Pillay September 5, 2024 10:36 CET
Unfortunately it is missing. I'm out of home now. I'll correct the problem tomorrow.
In the meantime you can replace that script with one of a previous version
Reply | Permalink
daemontools-0.78
Nigel Pillay Roberto Puzzanghera September 5, 2024 11:14 CET
Many thanks Roberto and my heartfelt appreciation for the incredible work your are doing.
Reply | Permalink
daemontools-0.78
Roberto Puzzanghera Nigel Pillay September 6, 2024 18:16 CET
I've rebuilt the 0.78 package with the package/compile script.
Thanks for the advice!
Reply | Permalink
daemontools-0.78
Bai Borko Roberto Puzzanghera October 4, 2024 12:45 CET
Hi Roberto,
package/compile script still missing in daemontools-0.78 source?
Reply | Permalink
daemontools-0.78
Roberto Puzzanghera Bai Borko October 4, 2024 13:00 CET
Tx Bai, I've created 0.78.1 with that file added
Reply | Permalink
correction
Ivelin Topalov March 7, 2024 20:37 CET
this line also has same 3 hidden chars 9see in hex)
Reply | Permalink
correction
Roberto Puzzanghera Ivelin Topalov March 7, 2024 20:54 CET
Thank you. I retyped those string
Reply | Permalink
correction
Ivelin Topalov March 7, 2024 20:33 CET
this line somehow has 3 hidden bytes (copy it and look in hex) which makes it wrong
Reply | Permalink
suggestion to insert install of build-essentials etc on this page.
GoofY March 4, 2023 09:06 CET
is it an idea to put the following already here instead of on page installing and configuring vpopmail?:
Reply | Permalink
suggestion to insert install of build-essentials etc on this page.
Roberto Puzzanghera GoofY March 4, 2023 19:55 CET
I created a page with the preinstallation tasks, where this and other preliminary tasks are covered. Feel free to post other hints
Reply | Permalink
suggestion to insert install of build-essentials etc on this page.
Roberto Puzzanghera GoofY March 4, 2023 09:09 CET
ok, inserted
Reply | Permalink
make: not found
Thuan March 5, 2020 04:18 CET
Hi everybody .
i had a problem need your help :
- when i run a command line :
i see :
help me , pls .
thanks.
Reply | Permalink
make: not found
Roberto Puzzanghera Thuan March 5, 2020 07:56 CET
I think that you should install autotools. Please refer to your distribution's documentation for the purpose
Reply | Permalink
attribute eXecute to "run" file
Marco Varanda February 16, 2020 14:43 CET
Hello,
I´m doing a procedure to install qmail to CentOS 8 (systemd)
run file gets 644 attribute, should we change to 744 ?
Thanks for your work !
Marco Varanda
Reply | Permalink
attribute eXecute to
Roberto Puzzanghera Marco Varanda February 16, 2020 14:58 CET
yes
Reply | Permalink
Supervise not running on debian
Jmecherie August 24, 2019 07:45 CET
If you receive error: Error supervise not running
It's because daemontools/svscanboot is not starting from sysvinit inittab.
To start from systemd:
Reply | Permalink
Broken link
Gabriel Torres June 19, 2019 00:31 CET
qmail.org is offline, change:
wget http://www.qmail.org/netqmail-1.06.tar.gz
to
wget https://notes.sagredo.eu/files/qmail/tar/netqmail-1.06.tar.gz
Reply | Permalink
patch of multilog file size limit
Sam Tang April 6, 2018 11:35 CET
Hi,
This is the little multilog patch I would like to share.
By default multilog only support max 16MB log file, for my email server, 16MB only can save 5 hours log, so I made this little patch, and change multilog file limit to 100MB, here how to apply:
and then update log/run file/s, now can assign file size to s104857600 (100MB).
Reply | Permalink
patch of multilog file size limit
Roberto Puzzanghera Sam Tang April 6, 2018 19:55 CET
thank you, Sam.. I'll add it asap
Reply | Permalink
patch of multilog file size limit
casey workman Roberto Puzzanghera June 24, 2024 17:09 CET
I have recently installed qmail from all the great information here (thanks for this). But after reviewing my log files they are all 16M and rotate out after the 10th one (current log and then 9 of the renamed @.....#.s files). So I did check the multilog.c file from the patch just to confirm and everything looks good there. But it is still cutting the logs out at 16M instead of 100M. How do I go about figuring out where to change that value and maybe even increase the number of logs it keeps?
Reply | Permalink
patch of multilog file size limit
Roberto Puzzanghera casey workman June 24, 2024 17:20 CET
in the log run file you have something like this
where n5 is the number of log files and s16777215 is the maximum size in bytes. Look here for more info http://cr.yp.to/daemontools/multilog.html
Reply | Permalink
clear service
Ivelin Topalov February 6, 2018 10:17 CET
the creation of clear service is non understandeable and not well described
cat > clear/run <
syntax error near unexpected token `newline'
what must do run to clear ?
no link creation for service clear
Reply | Permalink
clear service
Roberto Puzzanghera Ivelin Topalov February 6, 2018 12:10 CET
thank you, corrected
Reply | Permalink
But how do you set the PATH so daemontools can run properly?
Dave Martin March 10, 2012 20:04 CET
I tried installing daemontools exactly as outlined above. But qmailctl start fails because it can't find svc, svok, etc. I researched on the web, and it appears that the issue is with daemontools not being found in the PATH. I've tried updating the path in /etc/profile, and in /etc/inittab (when launching svscan). Although ps -ef | grep svscan demonstrates that svscan is running, qmailctl can't seem to find scripts in the /command folder.
(Per your suggestion, I'm trying to do this install on Slackware (version 13.37).)
I also tried running ./rts > rts.out (as mentioned in Dave Sill's book, "Life With Qmail") but it bombs on every line--again complaining 'command not found' one line after the next.
What am I doing wrong?
Thanks in advance for your response.
-Dave Martin
Reply | Permalink
Hi Dave, first of all thanks
roberto puzzanghera Dave Martin March 10, 2012 20:55 CET
Hi Dave, first of all thanks a lot for your support.
You should have this PATH inside the /command/svscanboot script:
qmail should start by means of a line inside /etc/inittab
so, you may want to check that svscanboot was actually launched on boot, or try to run it manually. I prefer to have it in my rc.local
fyi, I have tested everything on a slackware64 13.37
cheers :)
Roberto
Reply | Permalink
Daemantools with systemd
hifs roberto puzzanghera January 11, 2014 14:38 CET
if your linux using systemd
remove SV:123456:repawn:/command/svscanboot from /etc/inittab
create a file at /lib/systemd/system/daemontools.service
edit as
copy links
reboot ur system
Reply | Permalink
I confirmed the settings you gave, but still not working
Dave Martin roberto puzzanghera March 12, 2012 12:15 CET
qmailctl start continues to return errors on line 17: svok: command not found
However, ps -ef | grep svscan returns the following:
Could there be a permissions issue with the qmail user accounts? Does the qmail group need to be granted permission to in order to run the daemontool utilities?
Reply | Permalink
It's seems like the
roberto puzzanghera Dave Martin March 12, 2012 13:51 CET
It's seems like the daemontools' installation has failed... can you post please:
anyway feel free to contact me in private using the contact button above
Reply | Permalink