系统服务
编辑:crontab -e
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
分钟 时 日 月星期 命令
星号 *:代表所有可能的值
逗号 ,:指定一个列表范围,例如,“1,2,5”
中杠 -:表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线 /:指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
每分钟执行一次cmd
* * * * * command
3点到10点的每小时20分钟执行一次cmd
20 3-10 * * * command
10点30分,定时执行date.sh
30 10 * * * /home/date.sh
查看 crontab -f
删除 crontab -r
应用层
在单片机中,通过设置定时器周期性的执行函数,如控制LED等闪烁。在linux系统中如何实现呢?
在应用层中采用定时器周期性的执行函数,通过设置定时器和回调函数
定时周期执行函数
void timer_callback(int sig)
{
//执行的函数
}
int set_timer_callback(int period_second, void (*timer_callback)(int signo))
{
struct itimerval new_value, old_value;
signal(SIGALRM, timer_callback);//时间period_second到触发定时函数time_callback
new_value.it_value.tv_sec = period_second;
new_value.it_value.tv_usec = 0;
new_value.it_interval.tv_sec = period_second;
new_value.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &new_value, &old_value);
return 0;
}
定时器和信号配合使用:
signal 设置信号参数为SIGALRM,当定时到时,触发后面的回调函数,也就是任务的执行体。
定时器 setitimer 设置时间,秒,微秒。每次执行完都需要设置时间,否则只触发一次。
signal可以发送很多其他功能的的信号,如异常信号等。
实例,定时2s执行回调函数
set_timer_callback(2, timer_callback);