Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HOW TO: install in Ubuntu #168

Open
asterissco opened this issue Dec 27, 2023 · 3 comments
Open

HOW TO: install in Ubuntu #168

asterissco opened this issue Dec 27, 2023 · 3 comments

Comments

@asterissco
Copy link

Cronie is a cron implementation used in red-hat that supports the CRON_TZ prefix with which you can set a time zone of a cron statement

The service works well, but the crontab editor that comes with it gives a lot of permission problems, so we are going to install cronie by hand, leaving everything else the same

Compilation

qrms@pruebas-cron:~$ sudo su -
[sudo] password for qrms: 
root@pruebas-cron:~# apt-get install -y build-essential
root@pruebas-cron:~# wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.7.0/cronie-1.7.0.tar.gz
root@pruebas-cron:~# tar xzf cronie-1.7.0.tar.gz 
root@pruebas-cron:~# cd cronie-1.7.0/
root@pruebas-cron:~/cronie-1.7.0# ./configure 
root@pruebas-cron:~/cronie-1.7.0# make

Creating and mapping folders with links

root@pruebas-cron:~/cronie-1.7.0# mkdir -p /usr/local/var/spool/
root@pruebas-cron:~/cronie-1.7.0# ln -s /var/run/ /usr/local/var/run
root@pruebas-cron:~/cronie-1.7.0# ln -s /var/spool/cron/crontabs/ /usr/local/var/spool/cron
root@pruebas-cron:~/cronie-1.7.0# ln -s /etc/cron.d/ /usr/local/etc/cron.d

We copy the binary to /usr/local/bin and modify the cron service in systemd so that it loads cronie

root@pruebas-cron:~/cronie-1.7.0# cp src/crond /usr/local/bin/
root@pruebas-cron:~/cronie-1.7.0# vim /lib/systemd/system/cron.service


[Unit]
Description=Regular background program processing daemon
Documentation=man:cron(8)
After=remote-fs.target nss-user-lookup.target

[Service]
EnvironmentFile=-/etc/default/cron
# ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
ExecStart=/usr/local/bin/crond -f $EXTRA_OPTS
IgnoreSIGPIPE=false
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Reload

root@pruebas-cron:~/cronie-1.7.0# systemctl daemon-reload 
root@pruebas-cron:~/cronie-1.7.0# systemctl restart cron.service 
root@pruebas-cron:~/cronie-1.7.0# systemctl status cron.service 
● cron.service - Regular background program processing daemon
     Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-12-26 16:17:17 UTC; 4s ago
       Docs: man:cron(8)
   Main PID: 9520 (crond)
      Tasks: 1 (limit: 2256)
     Memory: 828.0K
     CGroup: /system.slice/cron.service
             └─9520 /usr/local/bin/crond -f

dic 26 16:17:17 pruebas-cron systemd[1]: Started Regular background program processing daemon.
dic 26 16:17:17 pruebas-cron crond[9520]: (CRON) STARTUP (1.7.0)
dic 26 16:17:17 pruebas-cron crond[9520]: (CRON) INFO (Syslog will be used instead of sendmail.)
dic 26 16:17:17 pruebas-cron crond[9520]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 67% if used.)

And it should be working now

@t8m
Copy link
Member

t8m commented Jan 12, 2024

It would make sense to have a proper HOWTO document created from this but it would need some cleanup.

@asterissco
Copy link
Author

Oks, i do it and send on comment! thank for cronie!

@hartwork
Copy link
Contributor

hartwork commented Jan 19, 2024

Ubuntu has a package for cronie by now: Ubuntu mantic (23.10) has cronie 1.6.1, Ubuntu noble (24.04) has cronie 1.7.1. Here's a simplified version of what Ubuntu's 1.7.1 noble package is doing in its debian/rules Makefile:

CONFIG_OPTIONS =
CONFIG_OPTIONS += --disable-anacron
CONFIG_OPTIONS += --with-editor=/usr/bin/sensible-editor
CONFIG_OPTIONS += --with-pam
CONFIG_OPTIONS += --with-selinux
CONFIG_OPTIONS += --with-inotify
CONFIG_OPTIONS += --with-audit

override_dh_auto_configure:
	SPOOL_DIR=/var/spool/cron/crontabs \
		  dh_auto_configure CRON_GROUP=crontab -- $(CONFIG_OPTIONS)

override_dh_install:
	dh_install
	install	-m 644 debian/etc/cronie.deny       debian/cronie/etc/cron.deny
	install -d -m 755 debian/cronie/lib/systemd/system/
	install -m 644 contrib/cronie.systemd       debian/cronie/lib/systemd/system/cronie.service

If it still needs documentation for older versions of Ubuntu, matching recent packaging closely may be a good idea to minimize future need for migration during update. Just an idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants