⏰ CHAPTER 9: PERIODIC PROCESSES
Original slides from Dr. James Walden at Northern Kentucky University.
$ ps -e | grep 'd$' | sort -k4 -u 2251 ? 00:00:00 atd 1094 ? 00:00:21 chronyd 2257 ? 00:01:19 crond 4016 ? 00:00:00 gvfsd 209 ? 00:00:00 kaluad 98 ? 00:00:00 kauditd 107 ? 00:00:00 kblockd 104 ? 00:01:18 khugepaged 99 ? 00:00:04 khungtaskd 106 ? 00:00:00 kintegrityd 208 ? 00:00:00 kmpath_rdacd 103 ? 00:00:00 ksmd 1145 ? 00:01:03 ksmtuned 2 ? 00:00:04 kthreadd 195 ? 00:00:00 kthrotld 1513801 ? 00:00:00 kworker/0:2H-kblockd 467936 ? 00:00:00 kworker/10:5H-kblockd 486755 ? 00:00:00 kworker/11:4H-kblockd 1263352 ? 00:00:00 kworker/2:6H-kblockd 927733 ? 00:00:00 kworker/3:3H-kblockd 609256 ? 00:00:00 kworker/4:6H-kblockd 1325764 ? 00:00:00 kworker/5:0H-kblockd 1968755 ? 00:00:00 kworker/6:6H-kblockd 2054483 ? 00:01:09 kworker/7:5H-kblockd 3699819 ? 00:00:34 kworker/8:3H-kblockd 670306 ? 00:00:05 kworker/9:1H-kblockd 1524752 ? 00:00:00 kworker/u24:0-nfsiod 1331337 ? 00:00:01 kworker/u24:2-xprtiod 1550118 ? 00:00:00 kworker/u24:3-nfsiod 1912 ? 00:00:00 lockd 1044 ? 00:00:04 lsmd 111 ? 00:00:00 md 1855 ? 00:00:00 nfsiod 1748 ? 00:08:30 pmcd 1075 ? 00:10:42 polkitd 14 ? 00:12:18 rcu_sched 1393 ? 00:00:00 rhsmcertd 1032 ? 00:00:04 rpcbind 1037 ? 00:00:00 rpciod 1411 ? 00:00:01 rpc.statd 1403 ? 00:06:52 rsyslogd 1395 ? 00:00:00 sshd 1 ? 00:47:03 systemd 2239 ? 00:12:04 systemd-logind 695 ? 00:03:14 systemd-udevd 1396 ? 01:28:10 tuned 1775 ? 00:01:43 /usr/sbin/httpd 114 ? 00:00:00 watchdogd 1038 ? 00:00:00 xprtiod 1159 ? 00:00:03 ypbind
syslogd
: system logging daemon
sshd
: daemon to handle incoming ssh connections
nfsd
: network file system daemon
ypbind
: network information service server
crond
: task scheduler daemon
/var/spool/cron/
username
$ cat /usr/lib/systemd/system/crond.service [Unit] Description=Command Scheduler After=auditd.service nss-user-lookup.target systemd-user-sessions.service time-sync.target ypbind.service [Service] EnvironmentFile=/etc/sysconfig/crond ExecStart=/usr/sbin/crond -n $CRONDARGS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=30s [Install] WantedBy=multi-user.target $ ls -l /usr/sbin/crond -rwxr-xr-x 1 root root 75712 Apr 6 05:40 /usr/sbin/crond
Is crond
SUID? How does it execute your crontab as you?
It’s executed as root
by systemd
.
Comment lines starting with ‘#’ are ignored by the daemon. Otherwise:
Label | Range | Description |
---|---|---|
Minute | 0–59 | Minute of Hour |
Hour | 0–23 | Hour of Day |
Day | 1–31 | Day of Month |
Month | 1–12 | Month of Year (or “Jan”, “Feb”, …) |
Weekday | 0–6 | Day of Week (0=Sunday) (or “Sun”, “Mon”, …) |
# Minute, Hour, Day of Month, Month, Weekday * * * * * echo Every minute 00 * * * * echo Every hour 00 1 * * * echo Every day at 1:00ᴀᴍ 30 */3 * * * echo Every three hours, on the half-hour 00 23 * * 0 echo 11:00ᴘᴍ Sundays */5 9-17 * * 1-5 echo Every five minutes, during working hours 45 10,22 * * 0,6 echo 10:45ᴀᴍ and 10:45ᴘᴍ on weekends 00 8 25 12 * echo Christmas morning
@reboot : Run once after reboot. @yearly : Run once a year, i.e., “0 0 1 1 *”. @annually : Run once a year, i.e., “0 0 1 1 *”. @monthly : Run once a month, i.e., “0 0 1 * *”. @weekly : Run once a week, i.e., “0 0 * * 0”. @daily : Run once a day, i.e., “0 0 * * *”. @hourly : Run once an hour, i.e., “0 * * * *”.
cron
can’t help you with:
PATH=/usr/local/bin:/home/bonehead/bin:/bin:/usr/bin MAILTO=Bonehead@ColoState.Edu 0 2 1-10 * * du -h -c -d=1 /
.chsrc
, .bashrc
) are not processed
crontab
filename installs filename as crontab
crontab -e
edits your crontab interactively
crontab -l
lists the current crontab file
crontab -l >~/.crontab-backup
protects you from system reconfiguration.
crontab -r
removes the crontab file
root
crontab -r smith
/etc/cron.allow
and /etc/cron.deny
specify which
users can submit crontab files
30 4 25 * * mail -s "TPS" bing%End-of-month reports due