On 2024-02-09 21:21, Marc Chamberlin via openSUSE Users wrote:

On 2/9/24 10:56, Carlos E. R. wrote:
On 2024-02-09 09:10, Marc Chamberlin via openSUSE Users wrote:
I ran into a problem in OpenSuSE 15.5 trying to start the cron.service daemon. It failed because the directory at /etc/cron.d was empty (which in previous releases of OpenSuSE it was not empty). The cron.service file, as supplied from the installation repos,

This phrase makes people think that you installed cron.service manually "somehow", that it is not the default installed file.

So, what is the full path of that "cron.service" file?

Assuming that it is "/usr/lib/systemd/system/cron.service", then please do:

rpm -qf /usr/lib/systemd/system/cron.service
rpm -qfi /usr/lib/systemd/system/cron.service

systemctl cat cron.service

And paste it all into your reply here. Complete, including the initial command prompt, like:


cer@Telcontar:~> rpm -qf /usr/lib/systemd/system/cron.service
cronie-1.5.7-150400.84.3.1.x86_64
cer@Telcontar:~>


Carlos, can do, with a bit more info and explanation...

Allow me to reformat your paragraph into "prefeformat" or it is difficult to read:

wa7pxw:/usr/lib/systemd/system # rpm -qf /usr/lib/systemd/system/cron.service
cronie-1.5.7-150400.84.3.1.x86_64
wa7pxw:/usr/lib/systemd/system # rpm -qfi /usr/lib/systemd/system/cron.service
Name        : cronie
Version     : 1.5.7
Release     : 150400.84.3.1
Architecture: x86_64
Install Date: Mon 11 Dec 2023 07:17:38 AM PST
Group       : System/Daemons
Size        : 321186
License     : BSD-3-Clause AND GPL-2.0-only AND MIT
Signature   : RSA/SHA256, Wed 18 Jan 2023 01:39:12 AM PST, Key ID 70af9e8139db7c82
Source RPM  : cronie-1.5.7-150400.84.3.1.src.rpm
Build Date  : Wed 18 Jan 2023 01:38:41 AM PST
Build Host  : sheep52
Relocations : (not relocatable)
Packager    : https://www.suse.com/
Vendor      : SUSE LLC <https://www.suse.com/>
URL         : https://github.com/cronie-crond/cronie
Summary     : Cron Daemon
Description :
cron automatically starts programs at specific times. Add new entries
with "crontab -e". (See "man 5 crontab" and "man 1 crontab" for
documentation.)

wa7pxw:/usr/lib/systemd/system # rpm -qf
    /usr/lib/systemd/system/cron.service 


    cronie-1.5.7-150400.84.3.1.x86_64


    wa7pxw:/usr/lib/systemd/system # rpm -qfi
    /usr/lib/systemd/system/cron.service 


    Name        : cronie


    Version     : 1.5.7


    Release     : 150400.84.3.1


    Architecture: x86_64


    Install Date: Mon 11 Dec 2023 07:17:38 AM PST


    Group       : System/Daemons


    Size        : 321186


    License     : BSD-3-Clause AND GPL-2.0-only AND MIT


    Signature   : RSA/SHA256, Wed 18 Jan 2023 01:39:12 AM PST, Key ID
    70af9e8139db7c82


    Source RPM  : cronie-1.5.7-150400.84.3.1.src.rpm


    Build Date  : Wed 18 Jan 2023 01:38:41 AM PST


    Build Host  : sheep52


    Relocations : (not relocatable)


    Packager    : https://www.suse.com/


    Vendor      : SUSE LLC <https://www.suse.com/>


    URL         : https://github.com/cronie-crond/cronie


    Summary     : Cron Daemon


    Description :


    cron automatically starts programs at specific times. Add new
    entries


    with "crontab -e". (See "man 5 crontab" and "man 1 crontab" for


    documentation.)


    
Under /etc, find the directories cron.hourly, cron.daily, cron.weekly,
and cron.monthly.  Scripts and programs that are located there are
started automatically.
Distribution: SUSE Linux Enterprise 15

Notice that I am not familiar with SLES. I have to assume that it is the same as openSUSE Leap 15.5 or 15.4


----
Ok, this next bit that you asked for is showing the version of /etc/systemd/system/cron.service that I created in order to correct the version that was in /usr/lib/systemd/system/cron.service. My modus operandi is that if I have to modify a .service file, I leave the original in /usr/lib/systemd/system and put the modified version in /etc/systemd/system Empirical observations tell me that anything in /etc/systemd/system takes precedence over anything in /usr/lib/systemd/system.

That's not the way to do it.

Instead, you have to run "systemctl edit cron.service". In actual fact, what is edited is file "/etc/systemd/system/cron.service.d/override.conf", which is created automatically.

I will show the version found at /usr/lib/systemd/system/cron.service below this output -

---
wa7pxw:/usr/lib/systemd/system # systemctl cat cron.service
# Warning: cron.service changed on disk, the version systemd has loaded is outdated.
# This output shows the current version of the unit's original fragment and drop-in files.
# If fragments or drop-ins were added or removed, they are not properly reflected in this output.
# Run 'systemctl daemon-reload' to reload units.
# /etc/systemd/system/cron.service
[Unit]
Description=Command Scheduler
After=nss-user-lookup.target network.target time-sync.target
After=postfix.service sendmail.service exim.service

[Service]
# ExecStartPre=+/bin/sh -c '/bin/chmod -R 0744 /etc/cron.*'

ExecStartPre=+/bin/sh -c '/bin/chmod 0744 /etc/cron.*'
ExecStartPre=+/bin/sh -c '/bin/chmod -R 0744 /etc/cron.*/*'

# Only do the following ExecStartPre if there is something in /etc/cron.d
# ExecStartPre=+/bin/sh -c '/bin/chmod -R 0644 /etc/cron.d/*'

ExecStartPre=+/bin/chmod 0644 /etc/crontab
ExecStart=/usr/sbin/cron -n
ExecReload=/usr/bin/kill -s SIGHUP $MAINPID
Restart=on-abort
KillMode=process
TasksMax=infinity

[Install]
WantedBy=multi-user.target
---

Notice that the output is in fact from "/etc/systemd/system/cron.service"


wa7pxw:/usr/lib/systemd/system # cat cron.service
[Unit]
Description=Command Scheduler
After=nss-user-lookup.target network.target time-sync.target
After=postfix.service sendmail.service exim.service

[Service]
ExecStartPre=+/bin/sh -c '/bin/chmod -R 0744 /etc/cron.*'
# Only do the following ExecStartPre if there is something in /etc/cron.d
ExecStartPre=+/bin/sh -c '/bin/chmod -R 0644 /etc/cron.d/*'

ExecStartPre=+/bin/chmod 0644 /etc/crontab
ExecStart=/usr/sbin/cron -n
ExecReload=/usr/bin/kill -s SIGHUP $MAINPID
Restart=on-abort
KillMode=process
TasksMax=infinity

[Install]
WantedBy=multi-user.target

---
I checked back on other systems running OpenSuSE x64 - 15.4, 15.3, 15.2, and 15.0 and found that the version of cron.service in /usr/lib/systemd/system were all identical. So if this is a change that I or one of my co-workers made, then it was done years ago and forgotten about. I can't say nor can I understand how it has propagated through so many upgrades. (some of which I am pretty sure were done as a new installation from a DVD disk, not as an "in-place" upgrade from a previous version)


So, you have a modified file. I would delete (or rename) both files and reinstall cron.

-- 
Cheers / Saludos,

		Carlos E. R.
		(from 15.4 x86_64 at Telcontar)