summaryrefslogtreecommitdiffstats
path: root/usr.sbin/cron
Commit message (Collapse)AuthorAgeFilesLines
* MFC r295672:pfg2016-03-071-1/+1
| | | | | | crontab: ftruncate() with ftello() instead of ftell(). Obtained from: OpenBSD (CVS rev. 1.47)
* MFC r295671:pfg2016-03-071-2/+3
| | | | | | cron: use (char *)NULL instead of (char *)0 in execle. Obtained from: OpenBSD (CVS Rev 1.25)
* MFC r292605, r292606, r292607, r292608:pfg2016-01-043-5/+6
| | | | | | | | | | cron: bring some fixes for Coverity reports and other issues. crontab: replace malloc + bzero with calloc crontab: properly free an entry cron: Check the return value of pipe(2) CID: 271773, 1009830,
* MFC: r261146ache2014-01-281-20/+7
| | | | | | | | | Bad timespec_subtract() calculations produce negative tv_nsec on i386 which cause EINVAL returned from nanosleep() which cause loop in cron_sleep() and making all cron jobs to start about 30 seconds earlier (which cause f.e. logfiles rotation by newsyslog delayed by 1 hour). Use simple and proved calculations from kernel's timespecsub() instead.
* Second attempt to add @every_second keyword support. Due to multiplesobomax2012-10-254-30/+149
| | | | | | | | | | | | | | requests, default to the previous 60-seconds scheduling method unless there is any @every_second entries to conserve CPU cycles and power. This change also improves scheduling in the default mode by running as close to the beginning of the minnute as possible by replacing sleep(3) with nanosleep(2). Previously, the tasks would run anywhere within the first second of the minute and that offset drifted back and forth each time cron(8) was engaged. MFC after: 1 month
* Fully backout latest changes.sobomax2012-10-182-49/+6
| | | | Pointy hat to: sobomax
* Remove harmless, but superfluous local change that creeped in alongsobomax2012-10-171-1/+0
| | | | with the r241649.
* Revert latest changes to cron, until better version is worked out (I hope).sobomax2012-10-174-45/+10
| | | | Requested by: few
* o Use nanosleep(2) to sleep exact amount of time till the next second,sobomax2012-10-171-6/+48
| | | | | | | | | | | | not multiple of 1 second, which results in actual time to drift back and forth every run within 1 second of the actual action has been set for. Suggested by: Ian Lepore o Schedule the first run in 1 second after starting up, not on the boundary of the next minute, which results in the every_second jobs not being run.
* Properly handle non-keyword case by setting e->second to 0.sobomax2012-10-161-0/+1
|
* Add per-second scheduling into the cron(8). Right now it'ssobomax2012-10-154-9/+45
| | | | | | | | | | | | | | | | | only available via the new @every_second shortcut. ENOTIME to implement crontab(5) format extensions to allow more flexible scheduling. In order to address some concerns expressed by Terry Lambert while discussing the topic few years ago, about per-second cron possibly causing some bad effects on /etc/crontab by stat()ing it every second instead of every minute now (i.e. atime update), only check that database needs to be reloaded on every 60-th loop run. This should be close enough to the current behaviour. Add "@every_minute" shortcut while I am here. MFC after: 1 month
* Fix build with LOG_FILE undefined and DEBUGGING disabled.pluknet2012-10-021-0/+2
|
* Fix build with DEBUGGING disabled.pluknet2012-10-021-0/+4
|
* Rework all non-contributed files that use `struct timezone'.ed2012-09-011-2/+1
| | | | | | | | | | | | | | This structure is not part of POSIX. According to POSIX, gettimeofday() has the following prototype: int gettimeofday(struct timeval *restrict tp, void *restrict tzp); Also, POSIX states that gettimeofday() shall return 0 (as long as tzp is not used). Remove dead error handling code. Also use NULL for a nul-pointer instead of integer 0. While there, change all pieces of code that only use tv_sec to use time(3), as this provides less overhead.
* Add a one second sleep before touching the spool directory. If the touchjhb2012-07-021-0/+9
| | | | | | | | | occurs in the same second as the earlier operations to create the temporary file and the cron(8) daemon is rescans the spool directory during that second, then the daemon may miss a cron edit and not properly update its internal database. MFC after: 1 month
* As cron(8) is started with '-s' by default, timezones that observegjb2012-04-281-4/+15
| | | | | | | | | | | | | DST should not need to worry about scheduling jobs when the DST time changes. Rather than removing the BUGS section in crontab(5) regarding this, note that disabling '-s' may still cause jobs to be executed twice or not at all. PR: 166318 Submitted by: Florian k Unglaub (f.unglaub%googlemail!com) MFC After: 1 week
* Drop setuid status while doing file operations to prevent potentialdelphij2012-02-271-12/+21
| | | | | | | | information leak. This changeset is intended to be a minimal one to make backports easier. Reviewed by: kevlo, remko MFC after: 1 week
* Since April 2, 2006, Indiana has observed DST.scf2012-01-281-2/+2
| | | | MFC after: 5 days
* Spelling fixes for usr.sbin/uqs2011-12-304-5/+8
|
* Point out that @reboot runs at every cron startup, not just systemwblock2011-11-251-1/+1
| | | | | | | | | startup. Discussed on: hackers@ Approved by: gjb (mentor) MFC after: 1 week
* List /var/cron/tabs in FILES and add descriptions for the other entries.brueffer2010-05-141-1/+5
| | | | | | | PR: 145912 Submitted by: Julian H. Stacey <jhs@berklix.com> Obtained from: OpenBSD MFC after: 1 week
* The last big commit: let usr.sbin/ use WARNS=6 by default.ed2010-01-021-0/+2
|
* Avoid sshd, cron, syslogd and inetd to be killed under high-pressure swapattilio2009-11-251-0/+4
| | | | | | | | | | | | | | environments. Please note that this can't be done while such processes run in jails. Note: in future it would be interesting to find a way to do that selectively for any desired proccess (choosen by user himself), probabilly via a ptrace interface or whatever. Obtained from: Sandvine Incorporated Reviewed by: emaste, arch@ Sponsored by: Sandvine Incorporated MFC: 1 month
* Fix typo.skv2008-12-011-1/+1
| | | | Approved by: ru
* remove a pointless prototype and static-fy the corresponding functionmatteo2008-11-181-2/+1
| | | | MFC after: 3 days
* use WARNS?= instead of WARNS=matteo2008-11-181-1/+1
| | | | MFC after: 3 days
* Be more precise and use sizeof(tn)matteo2008-11-181-1/+1
| | | | | | Pointed out by: glewis@ MFC after: 3 days
* Use WARNS?= instead of WARNS=matteo2008-11-181-1/+1
| | | | MFC after: 3 days
* Make usr.sbin/cron/crontab and usr.sbin/cron/lib WARNS=3 cleanmatteo2008-11-106-23/+20
| | | | | | Tested with: make universe MFC after: 3 days
* Revert to previous revision.matteo2008-11-091-23/+0
| | | | | | I should not commit anything at 3.50 AM. In addition to danfe's comments, I got others. I'll work on a better version of the patch.
* Don't leave files in /var/cront/tabs when interruptedmatteo2008-11-091-0/+26
| | | | | PR: 17363 MFC after: 3 days
* Be paranoid and use snprintfmatteo2008-11-091-7/+7
| | | | | | PR: bin/122137 Submitted by: Steven Kreuzer <skreuzer@exit2shell.com> MFC after: 3 days
* Be paranoid and zero out passwdmatteo2008-11-061-0/+2
| | | | | | | PR: 122070 Submitted by: Steven Kreuzer <skreuzer@exit2shell.com> Reminded by: gnn@ MFC after: 3 days
* Fix empty mailto (-m "") handling: somehow I missed all checks but the first,marck2008-08-011-1/+3
| | | | | | | | | hence output would be written to the wrong filehandle. Submitted by: reg Approved by: yar (implicit) MFC after: ASAP Pointy hat to: marck
* Add -m option to cron(8), overriding default mail recipient for cron mails,marck2008-06-294-17/+36
| | | | | | | | | | | unless explicitly provided by MAILTO= line in crontab. This feature can be useful in massive hosting environment, where most users do not care about autogenerated mails. Setting recipient to null string disables default mails at all. Approved by: yar MFC after: 4 weeks
* Cleanup of userland __P usekevlo2007-11-077-76/+78
|
* Fixed static linkage (build with -DNO_SHARED).ru2007-10-011-1/+1
| | | | Approved by: re (kensmith)
* Add PAM support to cron(8). Now cron(8) will skip commands scheduledyar2007-06-177-8/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | by unavailable accounts, e.g., those locked, expired, not allowed in at the moment by nologin(5), or whatever, depending on cron's pam.conf(5). This applies to personal crontabs only, /etc/crontab is unaffected. In other words, now the account management policy will apply to commands scheduled by users via crontab(1) so that a user can no longer use cron(8) to set up a delayed backdoor and run commands during periods when the admin doesn't want him to. The PAM check is done just before running a command, not when loading a crontab, because accounts can get locked, expired, and re-enabled any time with no changes to their crontabs. E.g., imagine that you provide a system with payed access, or better a cluster of such systems with centralized account management via PAM. When a user pays for some days of access, you set his expire field respectively. If the account expires before its owner pays more, its crontab commands won't run until the next payment is made. Then it'll be enough to set the expire field in future for the commands to run again. And so on. Document this change in the cron(8) manpage, which includes adding a FILES section and touching the document date. X-Security: should benefit as users have access to cron(8) by default
* Fix a bug where HOME was not allowed to be overridden by an user's crontabwill2007-03-081-8/+10
| | | | | | | | as crontab(5) states it can be. This is supported by all vixie-cron derived implementations; not sure why FreeBSD was any different. PR: bin/106442 MFC after: 2 weeks
* Behave as documented when reading fields saying "X/Y" where X != *brian2006-09-261-1/+3
| | | | | | rather than mis-parsing them as "X". MFC after: 1 day
* Use a #define to refer to /etc/crontab.ru2006-09-031-2/+2
|
* Don't use "implicit int". Move the opening { of the functions to the nextstefanf2006-07-201-2/+4
| | | | line while there.
* o Finally learn how to spell "privileges".maxim2006-06-112-2/+2
| | | | English trainer: ceri
* o Spell "privledges" correctly. Re-style comment.maxim2006-06-112-3/+5
|
* o Better be safe than sorry: check return code from setuid(2),maxim2006-06-012-8/+30
| | | | | | | | setgid(2), setlogin(2) and initgroups(3). In theory they could fail for root with some third party mac(4) policies. Submitted by: Kostik Belousov MFC after: 1 month
* /etc/crontab is similar enough to parse as correct if you runbrooks2006-01-101-0/+4
| | | | | | | | | "crontab /etc/crontab", but not the same format due to the who field. Add some limited anti-foot-shooting support and refuse to load /etc/crontab as someone's crontab. Users wishing shoot their foot in this manner may copy /etc/crontab elsewhere. :) MFC After: 1 week
* Pidfiles should be created with permission preventing users from openingpjd2005-09-161-1/+1
| | | | | | | them for reading. When user can open file for reading, he can also flock(2) it, which can lead to confusions. Pointed out by: green
* Use pidfile(3) in cron(8).pjd2005-08-244-63/+29
| | | | | | | Note, that when cron(8) cannot create pidfile, it'll exit. I didn't changed this behaviour, but its better to ignore errors other than EEXIST, so daemon can be started on systems where /var/ file system doesn't support locking (like NFS without rpc.lockd(8)).
* Mention the default value of PATH and that it may be overridden.brueffer2005-07-311-2/+7
| | | | | Submitted by: Roman Divacky MFC after: 3 days
* Remove kludges intended to support src trees with partial obj trees.des2005-06-101-4/+0
| | | | Discussed with: ru
OpenPOWER on IntegriCloud