āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ā§‡ āĻ•ā§āĻ°ā§‹āĻ¨: āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸

āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ā§‡ āĻ•ā§āĻ°ā§‹āĻ¨: āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸

āĻ•ā§āĻ˛āĻžāĻ¸āĻŋāĻ• āĻ˛āĻŋāĻ–ā§‡āĻ›ā§‡āĻ¨ āĻ¯ā§‡ āĻ¸ā§āĻ–ā§€ āĻ˜āĻ¨ā§āĻŸāĻž āĻĻā§‡āĻ–āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ¸ā§‡āĻ‡ āĻŦāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ° āĻŦāĻž āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻ›āĻŋāĻ˛ āĻ¨āĻž, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻœ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻ°āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻœāĻžāĻ¨ā§‡: āĻ•ā§āĻ°āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻœāĻ° āĻ°āĻžāĻ–āĻŦā§‡āĨ¤

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ†āĻŽāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœ āĻ‰āĻ­āĻ¯āĻŧāĻ‡āĨ¤ sed, awk, wc, cut āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻŽā§‚āĻ˛āĻ¤ 70 āĻāĻ° āĻĻāĻļāĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻļāĻŋāĻĄāĻŋāĻ‰āĻ˛āĻžāĻ°āĨ¤

āĻĻā§€āĻ°ā§āĻ˜āĻ•āĻžāĻ˛ āĻ§āĻ°ā§‡ āĻ†āĻŽāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§‡ āĻ¨āĻž āĻ—āĻŋāĻ¯āĻŧā§‡ āĻ•ā§āĻ°ā§‹āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻĻāĻŋāĻ¨, āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ, āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻĒā§āĻ™ā§āĻ–āĻžāĻ¨ā§āĻĒā§āĻ™ā§āĻ–āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻāĻ­āĻžāĻŦā§‡āĻ‡ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻāĻŸāĻŋ āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻŽāĻŋ POSIX āĻ•ā§āĻ°ā§‹āĻ¨ā§āĻŸāĻžāĻŦā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ, āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ•ā§āĻ°ā§‹āĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋāĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§āĻ°āĻ¨ āĻŸāĻžāĻ¸ā§āĻ• āĻšāĻžāĻ˛āĻžāĻšā§āĻ›ā§‡āĻ¨? āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡ āĻ†āĻ—ā§āĻ°āĻšā§€? āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻĨā§‡!

āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻŸ

āĻĒā§āĻ°āĻœāĻžāĻ¤āĻŋāĻ° āĻ‰āĻ¤āĻĒāĻ¤ā§āĻ¤āĻŋ

āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻ•ā§āĻ°āĻŽāĻŋāĻ• āĻ¸āĻžā§āĻšāĻžāĻ˛āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻ°āĻž āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ…āĻ¨ā§‡āĻ• āĻ†āĻ—ā§‡āĨ¤

āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸-āĻ¸āĻĻā§ƒāĻļ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ‰ā§ŽāĻĒāĻ¤ā§āĻ¤āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 7 āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡, āĻ¯āĻž āĻ—āĻ¤ āĻļāĻ¤āĻžāĻŦā§āĻĻā§€āĻ° 70-āĻāĻ° āĻĻāĻļāĻ•ā§‡ āĻŦā§‡āĻ˛ āĻ˛ā§āĻ¯āĻžāĻŦāĻ¸ā§‡ āĻŦāĻŋāĻ•āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻ–ā§āĻ¯āĻžāĻ¤ āĻ•ā§‡āĻ¨ āĻĨāĻŽā§āĻĒāĻ¸āĻ¨āĻ“ āĻ›āĻŋāĻ˛ā§‡āĻ¨āĨ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 7 āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ•ā§āĻ°āĻ¨ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤, āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻĒāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ•āĻžāĻœ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ•ā§āĻ°āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ, āĻ¤āĻŦā§‡ āĻŽā§‚āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻ¸āĻšāĻœ āĻ›āĻŋāĻ˛: āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻāĻ• āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡ āĻāĻ•āĻŦāĻžāĻ° āĻœā§‡āĻ—ā§‡ āĻ“āĻ ā§‡, āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĢāĻžāĻ‡āĻ˛ (/etc/lib/crontab) āĻĨā§‡āĻ•ā§‡ āĻ•āĻžāĻœ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĒāĻĄāĻŧāĻ¤ āĻāĻŦāĻ‚ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¸ā§āĻĒāĻžāĻ° āĻ‡āĻ‰āĻœāĻžāĻ° āĻ¯ā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛ā§‹ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§‡ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ›āĻŋāĻ˛āĨ¤

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ•āĻžāĻ˛ā§‡, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻŦāĻ‚ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸-āĻāĻ° āĻŽāĻ¤ā§‹ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ•ā§āĻ°āĻ¨āĻŸā§āĻ¯āĻžāĻŦ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸā§‡āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻŦāĻ‚ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽā§‚āĻ˛ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸-āĻ¸āĻĻā§ƒāĻļ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŽāĻžāĻ¨ - POSIX - 1992 āĻ¸āĻžāĻ˛ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋ āĻĢā§āĻ¯āĻžāĻ•ā§āĻŸā§‹ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻ°ā§‹āĻ¨ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋ āĻœā§āĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

1987 āĻ¸āĻžāĻ˛ā§‡, āĻĒāĻ˛ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ, āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§‡āĻ° āĻ‡āĻšā§āĻ›āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻ°āĻŋāĻĒ āĻ•āĻ°ā§‡, āĻĄā§‡āĻŽāĻ¨ā§‡āĻ° āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤

āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ POSIX āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻž āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻ° āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ āĻ›āĻŋāĻ˛, āĻŦāĻž README-āĻāĻ° āĻļā§āĻ­ā§‡āĻšā§āĻ›āĻž āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻ•ā§‹āĻ¨āĻ“ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ āĻ›āĻŋāĻ˛ āĻ¨āĻž: āĻ˛ā§‡āĻ–āĻ• āĻ—ā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻŸāĻŋ āĻĻā§‡āĻ¨ āĻ¨āĻž, āĻ˛ā§‡āĻ–āĻ•ā§‡āĻ° āĻ¨āĻžāĻŽ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻž, āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ āĻ¸āĻš āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ•ā§āĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡. āĻāĻ‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĢā§āĻ°āĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻ˛ā§‡ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻ¸ā§‡āĻ‡ āĻŦāĻ›āĻ°āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻ¤āĻž āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛, āĻ¤āĻžāĻ‡ 90 āĻāĻ° āĻĻāĻļāĻ•ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻ•āĻŋāĻ›ā§ āĻŽā§‚āĻ˛ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°ā§‹āĻ¨āĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ†āĻœāĻ“ āĻāĻŸāĻŋ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻ›ā§‡āĨ¤

āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡, Red Hat āĻāĻŦāĻ‚ SUSE Vixie cron - cronie-āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻāĻŸāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ āĻ…āĻ¨ā§‡āĻ• āĻĒā§āĻ¯āĻžāĻš āĻ¸āĻš āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ†āĻ¸āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤

āĻ†āĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽā§‡ POSIX-āĻ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ‡āĻ‰āĻœāĻžāĻ° āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻ•ā§āĻ°āĻ¨āĻŸā§āĻ¯āĻžāĻŦā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ āĻāĻŦāĻ‚ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ā§‡ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨āĻ¤āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§‡āĻ–āĻŦāĨ¤ āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§‡āĻˇā§‡, āĻ•ā§‡āĻ•ā§‡āĻ° āĻšā§‡āĻ°āĻŋ āĻ•ā§āĻ°ā§‹āĻ¨ āĻĄā§‡āĻŽāĻ¨ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡āĻ° āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĨ¤

POSIX āĻ•ā§āĻ°ā§‹āĻ¨ā§āĻŸāĻžāĻŦ

āĻ¯āĻĻāĻŋ āĻ†āĻ¸āĻ˛ āĻ•ā§āĻ°āĻ¨ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸ā§āĻĒāĻžāĻ° āĻ‡āĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻļāĻŋāĻĄāĻŋāĻ‰āĻ˛āĻžāĻ°āĻ°āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĨ¤

āĻ•ā§āĻ°āĻ¨ āĻĻā§āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ: āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ•ā§āĻ°āĻ¨ āĻĄā§‡āĻŽāĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ•ā§āĻ°āĻ¨ā§āĻŸāĻžāĻŦ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ¯āĻ–āĻ¨ āĻĄā§‡āĻŽāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§‡āĨ¤

В POSIX āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĄā§‡āĻŽāĻ¨ā§‡āĻ° āĻ†āĻšāĻ°āĻŖ āĻ•ā§‹āĻ¨ āĻ­āĻžāĻŦā§‡āĻ‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ•ā§‡ āĻ†āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨āĻŋāĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤āĻ°ā§‚āĻĒā§‡ crontab āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ‰āĻšā§āĻ¯, āĻ¤āĻŦā§‡ āĻŦāĻŋāĻļāĻĻāĻ­āĻžāĻŦā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤

āĻ•ā§āĻ°āĻ¨ā§āĻŸāĻžāĻŦ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻ•āĻ˛ āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ°āĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨: āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°ā§āĻ¨, āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨, āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¨ āĻāĻŦāĻ‚ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻ¸āĻžāĻĢ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ•ā§āĻ°āĻ¨ā§āĻŸāĻžāĻŦ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

crontab -e # Ņ€ĐĩĐ´Đ°ĐēŅ‚иŅ€ĐžĐ˛Đ°Ņ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ СадаŅ‡
crontab -l # ĐŋĐžĐēаСаŅ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ СадаŅ‡
crontab -r # ŅƒĐ´Đ°ĐģиŅ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ СадаŅ‡
crontab path/to/file.crontab # СаĐŗŅ€ŅƒĐˇĐ¸Ņ‚ŅŒ Ņ‚Đ°ĐąĐģиŅ†Ņƒ СадаŅ‡ иС Ņ„Đ°ĐšĐģĐ°

āĻĄāĻžāĻ•āĻ˛ā§‡ crontab -e āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻŋāĻ¤ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻŦā§‡ EDITOR.

āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

# ŅŅ‚Ņ€ĐžĐēи-ĐēĐžĐŧĐŧĐĩĐŊŅ‚Đ°Ņ€Đ¸Đ¸ иĐŗĐŊĐžŅ€Đ¸Ņ€ŅƒŅŽŅ‚ŅŅ
#
# СадаŅ‡Đ°, вŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ ĐĩĐļĐĩĐŧиĐŊŅƒŅ‚ĐŊĐž
* * * * * /path/to/exec -a -b -c
# СадаŅ‡Đ°, вŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ ĐŊĐ° 10-Đš ĐŧиĐŊŅƒŅ‚Đĩ ĐēĐ°ĐļĐ´ĐžĐŗĐž Ņ‡Đ°ŅĐ°
10 * * * * /path/to/exec -a -b -c
# СадаŅ‡Đ°, вŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ ĐŊĐ° 10-Đš ĐŧиĐŊŅƒŅ‚Đĩ вŅ‚ĐžŅ€ĐžĐŗĐž Ņ‡Đ°ŅĐ° ĐēĐ°ĐļĐ´ĐžĐŗĐž Đ´ĐŊŅ и иŅĐŋĐžĐģŅŒĐˇŅƒŅŽŅ‰Đ°Ņ ĐŋĐĩŅ€ĐĩĐŊĐ°ĐŋŅ€Đ°Đ˛ĐģĐĩĐŊиĐĩ ŅŅ‚Đ°ĐŊĐ´Đ°Ņ€Ņ‚ĐŊĐžĐŗĐž ĐŋĐžŅ‚ĐžĐēĐ° вŅ‹Đ˛ĐžĐ´Đ°
10 2 * * * /path/to/exec -a -b -c > /tmp/cron-job-output.log

āĻ°ā§‡āĻ•āĻ°ā§āĻĄā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻžāĻāĻšāĻŸāĻŋ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°: āĻŽāĻŋāĻ¨āĻŋāĻŸ [1..60], āĻ˜āĻ¨ā§āĻŸāĻž [0..23], āĻŽāĻžāĻ¸ā§‡āĻ° āĻĻāĻŋāĻ¨ [1..31], āĻŽāĻžāĻ¸ [1..12], āĻ¸āĻĒā§āĻ¤āĻžāĻšā§‡āĻ° āĻĻāĻŋāĻ¨ [0. .6], āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ 0 āĻ°āĻŦāĻŋāĻŦāĻžāĻ°āĨ¤ āĻļā§‡āĻˇ, āĻˇāĻˇā§āĻ , āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻ¯āĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°ā§‡āĻŸāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻžāĻāĻšāĻŸāĻŋ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•āĻŽāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§ƒāĻĨāĻ• āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

# СадаŅ‡Đ°, вŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ в ĐŋĐĩŅ€Đ˛ŅƒŅŽ и Đ´ĐĩŅŅŅ‚ŅƒŅŽ ĐŧиĐŊŅƒŅ‚Ņ‹ ĐēĐ°ĐļĐ´ĐžĐŗĐž Ņ‡Đ°ŅĐ°
1,10 * * * * /path/to/exec -a -b -c

āĻ…āĻĨāĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻĢā§‡āĻ¨ āĻ¸āĻš:

# СадаŅ‡Đ°, вŅ‹ĐŋĐžĐģĐŊŅĐĩĐŧĐ°Ņ в ĐēĐ°ĐļĐ´ŅƒŅŽ иС ĐŋĐĩŅ€Đ˛Ņ‹Ņ… Đ´ĐĩŅŅŅ‚и ĐŧиĐŊŅƒŅ‚ ĐēĐ°ĐļĐ´ĐžĐŗĐž Ņ‡Đ°ŅĐ°
0-9 * * * * /path/to/exec -a -b -c

āĻŸāĻžāĻ¸ā§āĻ• āĻļāĻŋāĻĄāĻŋāĻ‰āĻ˛āĻŋāĻ‚-āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ POSIX-āĻ cron.allow āĻāĻŦāĻ‚ cron.deny āĻĢāĻžāĻ‡āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ•ā§āĻ°āĻ¨āĻŸā§āĻ¯āĻžāĻŦā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸āĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ•ā§‹āĻ¨ā§‹āĻ­āĻžāĻŦā§‡āĻ‡ āĻāĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤

āĻŽāĻžāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻ˛āĻžā§āĻš āĻ•āĻ°āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ āĻšāĻžāĻ°āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

  1. HOME - āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻšā§‹āĻŽ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĨ¤
  2. LOGNAME — āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ˛āĻ—āĻ‡āĻ¨āĨ¤
  3. PATH āĻšāĻ˛ āĻ¸ā§‡āĻ‡ āĻĒāĻĨ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
  4. SHELL — āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°ā§‡āĻŸāĻžāĻ°ā§‡āĻ° āĻĒāĻĨāĨ¤

āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡, āĻāĻ‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¸ā§‡ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ POSIX āĻ•āĻŋāĻ›ā§āĻ‡ āĻŦāĻ˛ā§‡ āĻ¨āĻžāĨ¤

āĻ¸ā§‡āĻ°āĻž āĻŦāĻŋāĻ•ā§āĻ°ā§‡āĻ¤āĻž - āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ 3.0pl1

āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ•ā§āĻ°āĻ¨ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§‚āĻ°ā§āĻŦāĻĒā§āĻ°ā§āĻˇ āĻšāĻ˛ Vixie cron 3.0pl1, 1992 āĻ¸āĻžāĻ˛ā§‡ comp.sources.unix āĻŽā§‡āĻ‡āĻ˛āĻŋāĻ‚ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻļāĻĻā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŦāĨ¤

Vixie cron āĻĻā§āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡ āĻ†āĻ¸ā§‡ (cron āĻāĻŦāĻ‚ crontab)āĨ¤ āĻ¯āĻĨāĻžāĻ°ā§€āĻ¤āĻŋ, āĻĄā§‡āĻŽāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻĒāĻĄāĻŧāĻž āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€ āĻāĻŦāĻ‚ āĻ•ā§āĻ°āĻ¨ā§āĻŸāĻžāĻŦ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€āĨ¤

āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛

āĻ¸ā§āĻĒāĻžāĻ° āĻ‡āĻ‰āĻœāĻžāĻ° āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ /etc/crontab-āĻ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸āĻŸāĻŋ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ, āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻˇāĻˇā§āĻ  āĻ•āĻ˛āĻžāĻŽāĻŸāĻŋ āĻ¸ā§‡āĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ ĐĩĐļĐĩĐŧиĐŊŅƒŅ‚ĐŊĐž ĐžŅ‚ ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ vlad
* * * * * vlad /path/to/exec

āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ /var/cron/tabs/username āĻ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻāĻ•āĻ‡ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•ā§āĻ°āĻ¨ā§āĻŸāĻžāĻŦ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨, āĻ¤āĻ–āĻ¨ āĻāĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

crontab-āĻ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸āĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž /var/cron/allow āĻāĻŦāĻ‚ /var/cron/deny āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¨āĻžāĻŽ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸

POSIX āĻ•ā§āĻ°ā§‹āĻ¨ā§āĻŸāĻžāĻŦā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, āĻĒāĻ˛ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡ āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻžāĻŽā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻĒā§āĻ¤āĻžāĻš āĻŦāĻž āĻŽāĻžāĻ¸ā§‡āĻ° āĻĻāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ (āĻ¸ā§‹āĻŽ, āĻŽāĻ™ā§āĻ—āĻ˛, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ‡):

# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ ĐĩĐļĐĩĐŧиĐŊŅƒŅ‚ĐŊĐž ĐŋĐž ĐŋĐžĐŊĐĩĐ´ĐĩĐģŅŒĐŊиĐēĐ°Đŧ и вŅ‚ĐžŅ€ĐŊиĐēĐ°Đŧ в ŅĐŊваŅ€Đĩ
* * * Jan Mon,Tue /path/to/exec

āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡ āĻ§āĻžāĻĒā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ Ņ ŅˆĐ°ĐŗĐžĐŧ в двĐĩ ĐŧиĐŊŅƒŅ‚Ņ‹
*/2 * * * Mon,Tue /path/to/exec

āĻ§āĻžāĻĒ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻŽāĻŋāĻļā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ Ņ ŅˆĐ°ĐŗĐžĐŧ в двĐĩ ĐŧиĐŊŅƒŅ‚Ņ‹ в ĐŋĐĩŅ€Đ˛Ņ‹Ņ… Đ´ĐĩŅŅŅ‚ŅŒ ĐŧиĐŊŅƒŅ‚ ĐēĐ°ĐļĐ´ĐžĐŗĐž Ņ‡Đ°ŅĐ°
0-10/2 * * * * /path/to/exec

āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸ā§āĻŦāĻœā§āĻžāĻžāĻ¤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ (āĻ°āĻŋāĻŦā§āĻŸ, āĻŦāĻžāĻ°ā§āĻˇāĻŋāĻ•, āĻŦāĻžāĻ°ā§āĻˇāĻŋāĻ•, āĻŽāĻžāĻ¸āĻŋāĻ•, āĻ¸āĻžāĻĒā§āĻ¤āĻžāĻšāĻŋāĻ•, āĻĻā§ˆāĻ¨āĻŋāĻ•, āĻŽāĻ§ā§āĻ¯āĻ°āĻžāĻ¤, āĻ˜āĻŖā§āĻŸāĻžāĻ¯āĻŧ):

# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ ĐŋĐžŅĐģĐĩ ĐŋĐĩŅ€ĐĩСаĐŗŅ€ŅƒĐˇĐēи ŅĐ¸ŅŅ‚ĐĩĐŧŅ‹
@reboot /exec/on/reboot
# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ Ņ€Đ°Đˇ в Đ´ĐĩĐŊŅŒ
@daily /exec/daily
# ЗаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ Ņ€Đ°Đˇ в Ņ‡Đ°Ņ
@hourly /exec/daily

āĻŸāĻžāĻ¸ā§āĻ• āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ

āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ USER, LOGNAME āĻāĻŦāĻ‚ HOME āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĄā§‡āĻŽāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ passwd āĻ•ā§‹āĻ¨. PATH āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ "/usr/bin:/bin" āĻāĻŦāĻ‚ SHELL āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ "/bin/sh" āĻ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ LOGNAME āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•āĻŋāĻ›ā§ āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ (āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ SHELL āĻāĻŦāĻ‚ HOME) āĻ•āĻžāĻœāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻ°ā§‹āĻ¨ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ sh āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ bash āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ˛ā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ•ā§‡āĻŽāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻāĻ–āĻžāĻ¨ā§‡:

SHELL=/bin/bash
HOME=/tmp/
# exec ĐąŅƒĐ´ĐĩŅ‚ СаĐŋŅƒŅ‰ĐĩĐŊ bash-ĐĩĐŧ в /tmp/
* * * * * /path/to/exec

āĻĒāĻ°āĻŋāĻļā§‡āĻˇā§‡, āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ (āĻ•ā§āĻ°āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻŦāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ) āĻšāĻ˛āĻŽāĻžāĻ¨ āĻŸāĻžāĻ¸ā§āĻ•ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡, āĻ•ā§āĻ°ā§‹āĻ¨ā§āĻŸāĻžāĻŦ āĻ­āĻŋāĻœā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻž āĻāĻĄāĻŋāĻŸāĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ crontab āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ "/usr/ucb/vi" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ‡āĻ‰āĻ¸āĻŋāĻŦāĻŋ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ•ā§āĻ¯āĻžāĻ˛āĻŋāĻĢā§‹āĻ°ā§āĻ¨āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻļā§āĻŦāĻŦāĻŋāĻĻā§āĻ¯āĻžāĻ˛āĻ¯āĻŧ, āĻŦāĻžāĻ°ā§āĻ•āĻ˛ā§‡)āĨ¤

āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§āĻ¤ā§‡ āĻ•ā§āĻ°ā§‹āĻ¨

āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ‚ āĻĄā§‡āĻ°āĻŋāĻ­ā§‡āĻŸāĻŋāĻ­ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ā§‡āĻ° āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 3.0pl1āĨ¤ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡ āĻ•ā§‹āĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻ¨ā§‡āĻ‡; āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻāĻ•āĻ‡ Vixie cronāĨ¤ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŦāĻĄāĻŧ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯: āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ syslog- āĻ°, SELinux- āĻ° и āĻĒāĻŋāĻāĻāĻŽ.

āĻ•āĻŽ āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤

āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ /var/spool/cron/crontabs āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ āĻ†āĻ›ā§‡ - /etc/crontab-āĻāĨ¤ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ /etc/cron.d-āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻ°ā§‹āĻ¨ āĻĄā§‡āĻŽāĻ¨ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§‡āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ /etc/cron.allow āĻāĻŦāĻ‚ /etc/cron.deny āĻĢāĻžāĻ‡āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻļā§‡āĻ˛āĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ /bin/sh, āĻ¯āĻž āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ POSIX-āĻ¸āĻŽā§āĻŽāĻ¤ āĻļā§‡āĻ˛ āĻšāĻžāĻ¨āĻžāĻšāĻžāĻ¨āĻŋ, āĻ•ā§‹āĻ¨ā§‹ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĄāĻŧāĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻšāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ…-āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻŽā§‹āĻĄā§‡)āĨ¤

āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ā§‡āĻ° āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻ•ā§āĻ°ā§‹āĻ¨ āĻ¨āĻŋāĻœā§‡āĻ‡ systemd āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻšāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ˛āĻžā§āĻš āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ /lib/systemd/system/cron.service-āĻ āĻĻā§‡āĻ–āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻŋāĻ›ā§ āĻ¨ā§‡āĻ‡; āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ•ā§āĻ°āĻ¨āĻŸā§āĻ¯āĻžāĻŦā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˜ā§‹āĻˇāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻ°āĻ“ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽ āĻ•āĻžāĻœ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ°ā§‡āĻĄāĻšā§āĻ¯āĻžāĻŸ, āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ¨ā§āĻŸā§‹āĻ¸ā§‡ āĻ•ā§āĻ°āĻ¨āĻŋ

cronie — āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 4.1 āĻāĻ° āĻ•āĻžāĻāĻŸāĻžāĨ¤ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹, āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻŦā§‡ PAM āĻāĻŦāĻ‚ SELinux-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻž, inotify āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĢāĻžāĻ‡āĻ˛ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ /etc/crontab-āĻ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ /etc/cron.d-āĻ āĻ°āĻžāĻ–ā§‡, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ /var/spool/cron/crontabs-āĻ āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻĄā§‡āĻŽāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻšāĻ˛ā§‡, āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻšāĻ˛ /lib/systemd/system/crond.serviceāĨ¤

Red Hat-āĻāĻ° āĻŽāĻ¤ā§‹ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ā§‡, āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ /bin/sh āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŦā§āĻ¯āĻžāĻļāĨ¤ āĻāĻŸāĻž āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻ¯āĻ–āĻ¨ /bin/sh āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•ā§āĻ°ā§‹āĻ¨ āĻœāĻŦ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻŦā§āĻ¯āĻžāĻļ āĻļā§‡āĻ˛ POSIX- āĻ•āĻŽāĻĒā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻŽā§‹āĻĄā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ…-āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻŽā§‹āĻĄā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ•ā§‹āĻ¨ā§‹ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻĄāĻŧā§‡ āĻ¨āĻžāĨ¤

SLES āĻāĻŦāĻ‚ openSUSE-āĻ āĻ•ā§āĻ°ā§‹āĻ¨āĻŋ

āĻœāĻžāĻ°ā§āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ SLES āĻāĻŦāĻ‚ āĻāĻ° āĻĄā§‡āĻ°āĻŋāĻ­ā§‡āĻŸāĻŋāĻ­ openSUSE āĻāĻ•āĻ‡ āĻ•ā§āĻ°ā§‹āĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻĄā§‡āĻŽāĻ¨āĻŸāĻŋ systemd-āĻāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ /usr/lib/systemd/system/cron.service-āĻ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨: /etc/crontab, /etc/cron.d, /var/spool/cron/tabsāĨ¤ /bin/sh āĻšāĻ˛ āĻāĻ•āĻ‡ āĻŦā§āĻ¯āĻžāĻļ āĻ¯āĻž POSIX-āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ¨āĻ¨-āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻŽā§‹āĻĄā§‡ āĻšāĻ˛āĻ›ā§‡āĨ¤

āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸

āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻŦāĻ‚āĻļāĻ§āĻ°āĻ°āĻž āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ†āĻŽā§‚āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ¨āĻŋ, āĻ¤āĻŦā§‡ āĻāĻ–āĻ¨āĻ“ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¯āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻŦā§‹āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ‡ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ–āĻžāĻ°āĻžāĻĒāĻ­āĻžāĻŦā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ•ā§‹āĻĄāĻŸāĻŋāĻ•ā§‡ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻĒāĻ˛ āĻ­āĻŋāĻ•ā§āĻ¸āĻŋāĻ° āĻŽā§‚āĻ˛ āĻ•ā§āĻ°ā§‹āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻĒāĻĄāĻŧā§‡ āĻ†āĻ¨āĻ¨ā§āĻĻāĻŋāĻ¤āĨ¤

āĻ…āĻ¤āĻāĻŦ, āĻ†āĻŽāĻŋ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ‰āĻ­āĻ¯āĻŧ āĻļāĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ°āĻ¨ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•ā§āĻ°ā§‹āĻ¨ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ - āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ 3.0pl1āĨ¤ āĻ†āĻŽāĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻĄāĻŧāĻžāĻ•ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ ifdef āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻŦāĻ‚ āĻ›ā§‹āĻŸāĻ–āĻžāĻŸā§‹ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ°āĻ˛ āĻ•āĻ°āĻŦā§ˇ

āĻ°āĻžāĻ•ā§āĻˇāĻ¸ā§‡āĻ° āĻ•āĻžāĻœāĻ•ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ:

  1. āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ†āĻ°āĻŽā§āĻ­āĨ¤
  2. āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ“ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĨ¤
  3. āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ•ā§āĻ°āĻ¨ āĻ˛ā§āĻĒ āĻšāĻ˛āĻŽāĻžāĻ¨.
  4. āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻāĻ° āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¤āĻžāĻ•āĻžāĻ¨.

āĻ†āĻ°āĻŽā§āĻ­

āĻ¯āĻ–āĻ¨ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻšā§‡āĻ• āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻ•ā§āĻ°āĻ¨ SIGCHLD āĻāĻŦāĻ‚ SIGHUP āĻ¸āĻ‚āĻ•ā§‡āĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ āĻšāĻžāĻ‡āĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ— āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻ•āĻ°ā§‡, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ˛āĻ— āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ•āĻžāĻ°ā§€ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§‡:

signal(SIGCHLD, sigchld_handler);
signal(SIGHUP, sighup_handler);

āĻ•ā§āĻ°āĻ¨ āĻĄā§‡āĻŽāĻ¨ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻāĻ•āĻžāĻ‡ āĻšāĻ˛ā§‡, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻĒāĻžāĻ° āĻ‡āĻ‰āĻœāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ•ā§āĻ°āĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡āĨ¤ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĄā§‡āĻŽāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĒāĻŋāĻ†āĻ‡āĻĄāĻŋ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ˛āĻ• āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡, āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ āĻŋāĻ• āĻāĻŦāĻ‚ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻŸāĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨:

acquire_daemonlock(0);
set_cron_uid();
set_cron_cwd();

āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻĒāĻĨ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡, āĻ¯āĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻŦā§‡:

setenv("PATH", _PATH_DEFPATH, 1);

āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ "āĻĄā§‡āĻŽāĻ¨āĻžāĻ‡āĻœāĻĄ" āĻšāĻ¯āĻŧ: āĻāĻŸāĻŋ āĻ•āĻžāĻāĻŸāĻž āĻ•āĻ˛ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻ˛ā§āĻĄ āĻ•āĻĒāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻšāĻžāĻ‡āĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ (āĻ¸ā§‡āĻŸāĻŋāĻ¸āĻŋāĻĄ āĻ•āĻ˛ ​​āĻ•āĻ°ā§‡)āĨ¤ āĻ…āĻ­āĻŋāĻ­āĻžāĻŦāĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ° āĻ†āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°ā§‡:

switch (fork()) {
case -1:
    /* ĐēŅ€Đ¸Ņ‚иŅ‡ĐĩŅĐēĐ°Ņ ĐžŅˆĐ¸ĐąĐēĐ° и СавĐĩŅ€ŅˆĐĩĐŊиĐĩ Ņ€Đ°ĐąĐžŅ‚Ņ‹ */
    exit(0);
break;
case 0:
    /* Đ´ĐžŅ‡ĐĩŅ€ĐŊиК ĐŋŅ€ĐžŅ†ĐĩŅŅ */
    (void) setsid();
break;
default:
    /* Ņ€ĐžĐ´Đ¸Ņ‚ĐĩĐģŅŒŅĐēиК ĐŋŅ€ĐžŅ†ĐĩŅŅ СавĐĩŅ€ŅˆĐ°ĐĩŅ‚ Ņ€Đ°ĐąĐžŅ‚Ņƒ */
    _exit(0);
}

āĻ…āĻ­āĻŋāĻ­āĻžāĻŦāĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻ˛āĻ• āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ˛āĻ• āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ¸āĻ¨ā§āĻ¤āĻžāĻ¨ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĒāĻŋāĻ†āĻ‡āĻĄāĻŋ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻāĻ° āĻĒāĻ°ā§‡, āĻŸāĻžāĻ¸ā§āĻ• āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

/* ĐŋОвŅ‚ĐžŅ€ĐŊŅ‹Đš СаŅ…ваŅ‚ ĐģĐžĐēĐ° */
acquire_daemonlock(0);

/* ЗаĐŋĐžĐģĐŊĐĩĐŊиĐĩ БД  */
database.head = NULL;
database.tail = NULL;
database.mtime = (time_t) 0;
load_database(&database);

āĻ¤āĻžāĻ°āĻĒāĻ° āĻ•ā§āĻ°āĻ¨ āĻŽā§‚āĻ˛ āĻ•āĻžāĻœā§‡āĻ° āĻšāĻ•ā§āĻ°ā§‡ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ° āĻ†āĻ—ā§‡, āĻŸāĻžāĻ¸ā§āĻ• āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻœāĻ° āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨āĨ¤

āĻŸāĻžāĻ¸ā§āĻ• āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ“ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž

load_database āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€āĨ¤ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•ā§āĻ°āĻ¨āĻŸā§āĻ¯āĻžāĻŦ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻšāĻ˛ā§‡, āĻŸāĻžāĻ¸ā§āĻ• āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻ•āĻžāĻœā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĨ¤

āĻŦāĻŋāĻļā§‡āĻˇ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĢāĻžāĻ‡āĻ˛ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡:

/* ĐĩŅĐģи Ņ„Đ°ĐšĐģ ŅĐ¸ŅŅ‚ĐĩĐŧĐŊОК Ņ‚Đ°ĐąĐģиŅ†Ņ‹ иСĐŧĐĩĐŊиĐģŅŅ, ĐŋĐĩŅ€ĐĩŅ‡Đ¸Ņ‚Ņ‹Đ˛Đ°ĐĩĐŧ */
if (syscron_stat.st_mtime) {
    process_crontab("root", "*system*",
    SYSCRONTAB, &syscron_stat,
    &new_db, old_db);
}

āĻāĻ•āĻŸāĻŋ āĻ˛ā§āĻĒā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ˛ā§‹āĻĄ āĻšāĻšā§āĻ›ā§‡:

while (NULL != (dp = readdir(dir))) {
    char    fname[MAXNAMLEN+1],
            tabname[MAXNAMLEN+1];
    /* Ņ‡Đ¸Ņ‚Đ°Ņ‚ŅŒ Ņ„Đ°ĐšĐģŅ‹ Ņ Ņ‚ĐžŅ‡ĐēОК ĐŊĐĩ ĐŊĐ°Đ´Đž*/
    if (dp->d_name[0] == '.')
            continue;
    (void) strcpy(fname, dp->d_name);
    sprintf(tabname, CRON_TAB(fname));
    process_crontab(fname, fname, tabname,
                    &statbuf, &new_db, old_db);
}

āĻāĻ° āĻĒāĻ°ā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡, process_crontab āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛āĻŸāĻŋ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ (āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻžāĻ° āĻ‡āĻ‰āĻœāĻžāĻ° āĻšāĻ¯āĻŧ) āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ load_user āĻ•āĻ˛ āĻ•āĻ°ā§‡āĨ¤ āĻĒāĻ°ā§‡āĻ°āĻŸāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ˛āĻžāĻ‡āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛āĻžāĻ‡āĻ¨ āĻĒāĻĄāĻŧā§‡:

while ((status = load_env(envstr, file)) >= OK) {
    switch (status) {
    case ERR:
        free_user(u);
        u = NULL;
        goto done;
    case FALSE:
        e = load_entry(file, NULL, pw, envp);
        if (e) {
            e->next = u->crontab;
            u->crontab = e;
        }
        break;
    case TRUE:
        envp = env_set(envp, envstr);
        break;
    }
}

āĻāĻ–āĻžāĻ¨ā§‡, āĻšāĻ¯āĻŧ āĻ˛ā§‹āĻĄ_āĻāĻ¨āĻ­āĻŋ / āĻāĻ¨āĻ­āĻŋ_āĻ¸ā§‡āĻŸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ­āĻŋāĻāĻ†āĻ° = āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻĢāĻ°ā§āĻŽā§‡āĻ° āĻ˛āĻžāĻ‡āĻ¨) āĻ…āĻĨāĻŦāĻž āĻ˛ā§‹āĻĄ_āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŸāĻžāĻ¸ā§āĻ•ā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (* * * * * /path/to/exec)āĨ¤

āĻ˛ā§‹āĻĄ_āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻ¯ā§‡ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻ¸āĻ¤ā§āĻ¤āĻžāĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ āĻ¤āĻž āĻšāĻ˛ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻœ, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•āĻžāĻœā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻŦā§‹āĻ¸ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ‚ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻāĻŦāĻ‚ āĻŸāĻžāĻ¸ā§āĻ• āĻ˛āĻžā§āĻš āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ—āĻ āĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻ†āĻ—ā§āĻ°āĻšā§€:

/* ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅŒ и ĐŗŅ€ŅƒĐŋĐŋĐ° Đ´ĐģŅ СаĐŋŅƒŅĐēĐ° СадаŅ‡Đ¸ ĐąĐĩŅ€ŅƒŅ‚ŅŅ иС passwd*/
e->uid = pw->pw_uid;
e->gid = pw->pw_gid;

/* ŅˆĐĩĐģĐģ ĐŋĐž ŅƒĐŧĐžĐģŅ‡Đ°ĐŊиŅŽ (/bin/sh), ĐĩŅĐģи ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅŒ ĐŊĐĩ ŅƒĐēаСаĐģ Đ´Ņ€ŅƒĐŗĐžĐĩ */
e->envp = env_copy(envp);
if (!env_get("SHELL", e->envp)) {
    sprintf(envstr, "SHELL=%s", _PATH_BSHELL);
    e->envp = env_set(e->envp, envstr);
}
/* Đ´ĐžĐŧĐ°ŅˆĐŊŅŅ диŅ€ĐĩĐēŅ‚ĐžŅ€Đ¸Ņ */
if (!env_get("HOME", e->envp)) {
    sprintf(envstr, "HOME=%s", pw->pw_dir);
    e->envp = env_set(e->envp, envstr);
}
/* ĐŋŅƒŅ‚ŅŒ Đ´ĐģŅ ĐŋОиŅĐēĐ° ĐŋŅ€ĐžĐŗŅ€Đ°ĐŧĐŧ */
if (!env_get("PATH", e->envp)) {
    sprintf(envstr, "PATH=%s", _PATH_DEFPATH);
    e->envp = env_set(e->envp, envstr);
}
/* иĐŧŅ ĐŋĐžĐģŅŒĐˇĐžĐ˛Ņ‚ĐĩĐģŅ вŅĐĩĐŗĐ´Đ° иС passwd */
sprintf(envstr, "%s=%s", "LOGNAME", pw->pw_name);
e->envp = env_set(e->envp, envstr);

āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ˛ā§āĻĒ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ•āĻžāĻœā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ˛ā§āĻĒ

āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 7 āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ†āĻ¸āĻ˛ āĻ•ā§āĻ°āĻ¨āĻŸāĻŋ āĻŦā§‡āĻļ āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛: āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ˛ā§āĻĒā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¸ā§āĻĒāĻžāĻ° āĻ‡āĻ‰āĻœāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻĒāĻ°ā§‡āĻ° āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻļā§āĻ°ā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ˜ā§āĻŽāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻāĻ‡ āĻ¸āĻšāĻœ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤

SysV-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĄā§‡āĻŽāĻ¨āĻŸāĻŋ āĻšāĻ¯āĻŧ āĻ¨āĻŋāĻ•āĻŸāĻ¤āĻŽ āĻŽāĻŋāĻ¨āĻŋāĻŸ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ˜ā§āĻŽāĻžāĻ¤ā§‡ āĻ—āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœāĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻŦāĻž 30 āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŦāĻ‚ āĻāĻ‡ āĻŽā§‹āĻĄā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ•āĻžāĻœā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤

āĻ­āĻŋāĻ•ā§āĻ¸āĻŋ āĻ•ā§āĻ°āĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡ āĻāĻ•āĻŦāĻžāĻ° āĻŸāĻžāĻ¸ā§āĻ• āĻ˛āĻŋāĻ¸ā§āĻŸ āĻšā§‡āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡āĻ¨, āĻ¸ā§ŒāĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤ 80 āĻāĻ° āĻĻāĻļāĻ•ā§‡āĻ° āĻļā§‡āĻˇā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ›āĻŋāĻ˛:

/* ĐŋĐĩŅ€Đ˛Đ¸Ņ‡ĐŊĐ°Ņ СаĐŗŅ€ŅƒĐˇĐēĐ° СадаŅ‡ */
load_database(&database);
/* СаĐŋŅƒŅŅ‚иŅ‚ŅŒ СадаŅ‡Đ¸, ĐŋĐžŅŅ‚авĐģĐĩĐŊĐŊŅ‹Đĩ Đē вŅ‹ĐŋĐžĐģĐŊĐĩĐŊиŅŽ ĐŋĐžŅĐģĐĩ ĐŋĐĩŅ€ĐĩСаĐŗŅ€ŅƒĐˇĐēи ŅĐ¸ŅŅ‚ĐĩĐŧŅ‹ */
run_reboot_jobs(&database);
/* ŅĐ´ĐĩĐģĐ°Ņ‚ŅŒ TargetTime ĐŊĐ°Ņ‡Đ°ĐģĐžĐŧ ĐąĐģиĐļĐ°ĐšŅˆĐĩĐš ĐŧиĐŊŅƒŅ‚Ņ‹ */
cron_sync();
while (TRUE) {
    /* вŅ‹ĐŋĐžĐģĐŊиŅ‚ŅŒ СадаŅ‡Đ¸, ĐŋĐžŅĐģĐĩ Ņ‡ĐĩĐŗĐž ŅĐŋĐ°Ņ‚ŅŒ Đ´Đž TargetTime Ņ ĐŋĐžĐŋŅ€Đ°Đ˛ĐēОК ĐŊĐ° вŅ€ĐĩĐŧŅ, ĐŋĐžŅ‚Ņ€Đ°Ņ‡ĐĩĐŊĐŊĐžĐĩ ĐŊĐ° СадаŅ‡Đ¸ */
    cron_sleep();

    /* ĐŋĐĩŅ€ĐĩŅ‡Đ¸Ņ‚Đ°Ņ‚ŅŒ ĐēĐžĐŊŅ„иĐŗŅƒŅ€Đ°Ņ†Đ¸ŅŽ */
    load_database(&database);

    /* ŅĐžĐąŅ€Đ°Ņ‚ŅŒ СадаŅ‡Đ¸ Đ´ĐģŅ Đ´Đ°ĐŊĐŊОК ĐŧиĐŊŅƒŅ‚Ņ‹ */
    cron_tick(&database);

    /* ĐŋĐĩŅ€ĐĩвĐĩŅŅ‚и TargetTime ĐŊĐ° ĐŊĐ°Ņ‡Đ°ĐģĐž ŅĐģĐĩĐ´ŅƒŅŽŅ‰ĐĩĐš ĐŧиĐŊŅƒŅ‚Ņ‹ */
    TargetTime += 60;
}

cron_sleep āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ•āĻžāĻœ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻœāĻĄāĻŧāĻŋāĻ¤, job_runqueue (āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨) āĻāĻŦāĻ‚ do_command (āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ•āĻžāĻœ āĻšāĻžāĻ˛āĻžāĻ¨) āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°ā§‡āĨ¤ āĻļā§‡āĻˇ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻļāĻĻā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻŽāĻ¤ā§‹āĨ¤

āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¸ā§āĻ• āĻšāĻ˛āĻŽāĻžāĻ¨

do_command āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻ¸ā§āĻŸāĻžāĻ‡āĻ˛ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻāĻŸāĻžāĻšāĻžāĻŽāĻš āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻ­āĻŋāĻ­āĻžāĻŦāĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡, āĻļāĻŋāĻļā§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻŸāĻžāĻ¸ā§āĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°ā§‡:

switch (fork()) {
case -1:
    /*ĐŊĐĩ ŅĐŧĐžĐŗĐģи вŅ‹ĐŋĐžĐģĐŊиŅ‚ŅŒ fork */
    break;
case 0:
    /* Đ´ĐžŅ‡ĐĩŅ€ĐŊиК ĐŋŅ€ĐžŅ†ĐĩŅŅ: ĐŊĐ° вŅŅĐēиК ŅĐģŅƒŅ‡Đ°Đš ĐĩŅ‰Đĩ Ņ€Đ°Đˇ ĐŋŅ€ĐžĐąŅƒĐĩĐŧ СаŅ…ваŅ‚иŅ‚ŅŒ ĐŗĐģавĐŊŅ‹Đš ĐģĐžĐē */
    acquire_daemonlock(1);
    /* ĐŋĐĩŅ€ĐĩŅ…ОдиĐŧ Đē Ņ„ĐžŅ€ĐŧиŅ€ĐžĐ˛Đ°ĐŊиŅŽ ĐŋŅ€ĐžŅ†ĐĩŅŅĐ° СадаŅ‡Đ¸ */
    child_process(e, u);
    /* ĐŋĐž СавĐĩŅ€ŅˆĐĩĐŊиŅŽ Đ´ĐžŅ‡ĐĩŅ€ĐŊиК ĐŋŅ€ĐžŅ†ĐĩŅŅ СаĐēĐ°ĐŊŅ‡Đ¸Đ˛Đ°ĐĩŅ‚ Ņ€Đ°ĐąĐžŅ‚Ņƒ */
    _exit(OK_EXIT);
    break;
default:
    /* Ņ€ĐžĐ´Đ¸Ņ‚ĐĩĐģŅŒŅĐēиК ĐŋŅ€ĐžŅ†ĐĩŅŅ ĐŋŅ€ĐžĐ´ĐžĐģĐļĐ°ĐĩŅ‚ Ņ€Đ°ĐąĐžŅ‚Ņƒ */
    break;
}

āĻšāĻžāĻ‡āĻ˛ā§āĻĄ_āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ†āĻ›ā§‡: āĻāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻāĻ°āĻ° āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¨āĻŋāĻœā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻŽā§‡āĻ‡āĻ˛ā§‡ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ (āĻ¯āĻĻāĻŋ āĻŸāĻžāĻ¸ā§āĻ• āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ MAILTO āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻĨāĻžāĻ•ā§‡), āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§‡āĻˇā§‡, āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻ•āĻžāĻœ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤

āĻŸāĻžāĻ¸ā§āĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ…āĻ¨ā§āĻ¯ āĻ•āĻžāĻāĻŸāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ—āĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧ:

switch (vfork()) {
case -1:
    /* ĐŋŅ€Đ¸ ĐžŅˆĐ¸ĐąĐēи ŅŅ€Đ°ĐˇŅƒ СавĐĩŅ€ŅˆĐ°ĐĩŅ‚ŅŅ Ņ€Đ°ĐąĐžŅ‚Đ° */
    exit(ERROR_EXIT);
case 0:
    /* ĐŋŅ€ĐžŅ†ĐĩŅŅ-вĐŊŅƒĐē Ņ„ĐžŅ€ĐŧиŅ€ŅƒĐĩŅ‚ ĐŊОвŅƒŅŽ ŅĐĩŅŅĐ¸ŅŽ, Ņ‚ĐĩŅ€ĐŧиĐŊĐ°Đģ и Ņ‚.Đ´.
     */
    (void) setsid();

    /*
     * Đ´Đ°ĐģŅŒŅˆĐĩ ĐŧĐŊĐžĐŗĐžŅĐģОвĐŊĐ°Ņ ĐŊĐ°ŅŅ‚Ņ€ĐžĐšĐēĐ° вŅ‹Đ˛ĐžĐ´Đ° ĐŋŅ€ĐžŅ†ĐĩŅŅĐ°, ĐžĐŋŅƒŅŅ‚иĐŧ Đ´ĐģŅ ĐēŅ€Đ°Ņ‚ĐēĐžŅŅ‚и
     */

    /* ŅĐŧĐĩĐŊĐ° диŅ€ĐĩĐēŅ‚ĐžŅ€Đ¸Đ¸, ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ и ĐŗŅ€ŅƒĐŋĐŋŅ‹ ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ,
     * Ņ‚Đž ĐĩŅŅ‚ŅŒ ĐŋŅ€ĐžŅ†ĐĩŅŅ йОĐģŅŒŅˆĐĩ ĐŊĐĩ ŅŅƒĐŋĐĩŅ€ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅŒŅĐēиК
     */
    setgid(e->gid);
    setuid(e->uid);
    chdir(env_get("HOME", e->envp));

    /* СаĐŋŅƒŅĐē ŅĐ°ĐŧОК ĐēĐžĐŧĐ°ĐŊĐ´Ņ‹
     */
    {
        /* ĐŋĐĩŅ€ĐĩĐŧĐĩĐŊĐŊĐ°Ņ ĐžĐēŅ€ŅƒĐļĐĩĐŊиŅ SHELL ŅƒĐēаСŅ‹Đ˛Đ°ĐĩŅ‚ ĐŊĐ° иĐŊŅ‚ĐĩŅ€ĐŋŅ€ĐĩŅ‚Đ°Ņ‚ĐžŅ€ Đ´ĐģŅ СаĐŋŅƒŅĐēĐ° */
        char    *shell = env_get("SHELL", e->envp);

        /* ĐŋŅ€ĐžŅ†ĐĩŅŅ СаĐŋŅƒŅĐēĐ°ĐĩŅ‚ŅŅ ĐąĐĩС ĐŋĐĩŅ€ĐĩĐ´Đ°Ņ‡Đ¸ ĐžĐēŅ€ŅƒĐļĐĩĐŊиŅ Ņ€ĐžĐ´Đ¸Ņ‚ĐĩĐģŅŒŅĐēĐžĐŗĐž ĐŋŅ€ĐžŅ†ĐĩŅŅĐ°,
         * Ņ‚Đž ĐĩŅŅ‚ŅŒ иĐŧĐĩĐŊĐŊĐž Ņ‚Đ°Đē, ĐēĐ°Đē ĐžĐŋиŅĐ°ĐŊĐž в Ņ‚Đ°ĐąĐģиŅ†Đĩ СадаŅ‡ ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ  */
        execle(shell, shell, "-c", e->cmd, (char *)0, e->envp);

        /* ĐžŅˆĐ¸ĐąĐēĐ° — и ĐŋŅ€ĐžŅ†ĐĩŅŅ ĐŊĐ° СаĐŋŅƒŅŅ‚иĐģŅŅ? СавĐĩŅ€ŅˆĐĩĐŊиĐĩ Ņ€Đ°ĐąĐžŅ‚Ņ‹ */
        perror("execl");
        _exit(ERROR_EXIT);
    }
    break;
default:
    /* ŅĐ°Đŧ ĐŋŅ€ĐžŅ†ĐĩŅŅ ĐŋŅ€ĐžĐ´ĐžĐģĐļĐ°ĐĩŅ‚ Ņ€Đ°ĐąĐžŅ‚Ņƒ: ĐļĐ´ĐĩŅ‚ СавĐĩŅ€ŅˆĐĩĐŊиŅ Ņ€Đ°ĐąĐžŅ‚Ņ‹ и вŅ‹Đ˛ĐžĐ´Đ° */
    break;
}

āĻ¯ā§‡ āĻŽā§‚āĻ˛āĻ¤ āĻ¸āĻŦ cron āĻšāĻ¯āĻŧ. āĻ†āĻŽāĻŋ āĻ•āĻŋāĻ›ā§ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻŋāĻ‚, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻŽā§‚āĻ˛ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻŸāĻŋ āĻ°ā§‚āĻĒāĻ°ā§‡āĻ–āĻž āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤

āĻ‰āĻ¤ā§āĻ¤āĻ°āĻ­āĻžāĻˇ

āĻ•ā§āĻ°āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ†āĻļā§āĻšāĻ°ā§āĻ¯āĻœāĻ¨āĻ•āĻ­āĻžāĻŦā§‡ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ, āĻ¯āĻž āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻŦāĻŋāĻļā§āĻŦā§‡āĻ° āĻ¸ā§‡āĻ°āĻž āĻāĻ¤āĻŋāĻšā§āĻ¯ā§‡ āĻ¤ā§ˆāĻ°āĻŋāĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°ā§‡āĻ¨ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ¤āĻŋāĻ¨āĻŋ āĻ•āĻ¯āĻŧā§‡āĻ• āĻĻāĻļāĻ• āĻ§āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ•āĻžāĻœāĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ›ā§‡āĻ¨āĨ¤ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻ¸āĻž āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻŸāĻŋāĻ° āĻ•ā§‹āĻĄ āĻĒā§‡āĻ¤ā§‡ āĻāĻ• āĻ˜āĻŖā§āĻŸāĻžāĻ° āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻ—ā§‡āĻ¨āĻŋ, āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ…āĻ¨ā§‡āĻ• āĻŽāĻœāĻž āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ! āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻŸāĻŋ āĻ­āĻžāĻ— āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡.

āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨āĻŋ āĻ¨āĻž, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻāĻŸāĻž āĻŦā§āĻāĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡ āĻāĻ•āĻŸā§ āĻĻā§āĻƒāĻ–āĻŋāĻ¤ āĻ¯ā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚, āĻāĻ° āĻ…āĻ¤ā§āĻ¯āĻ§āĻŋāĻ•-āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻ¤āĻŋ-āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻŦāĻŖāĻ¤āĻž āĻ¸āĻš, āĻĻā§€āĻ°ā§āĻ˜āĻ•āĻžāĻ˛ āĻ§āĻ°ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§‹āĻ—ā§€ āĻ¨āĻ¯āĻŧāĨ¤

āĻ•ā§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻ¨ā§‡āĻ• āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄ-āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, fcron āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻĻ āĻ–āĻ°āĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ¸āĻšāĻœāĻ¤āĻŽ āĻ•ā§āĻ°āĻ¨ā§āĻŸāĻžāĻŦ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻŽāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ›āĻŋāĻ˛āĨ¤

āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡, āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸āĻ•ā§‡ āĻ­āĻžāĻ˛āĻŦāĻžāĻ¸ā§āĻ¨, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨āĻž āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž!

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨