linux下怎么实现线程的定时抢占?

可以用alarm信号做:alarm(设置信号传送闹钟)相关函数 signal,sleep表头文件 #include<unistd.h>定义函数 unsigned int alarm(unsigned int seconds);函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回。返回值返回之前闹钟的剩余秒数,如果之前未设闹钟则返回0。#include<unistd.h>#include<signal.h>void handler() { //这里读跳变次数}main(){int i;signal(SIGALRM,handler)

;//这里设置时钟信号的响应函数alarm(1)

; //这里设置每一秒钟发送一个时钟信号}

linux的定时重启的具体命令。非常感谢?

Linux系统利用Crontab命令实现定时重启Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用servicecrondstatus查看cron服务状态,如果没有启动则servicecrondstart启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务:crontab-u//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab-l//列出某个用户cron服务的详细内容crontab-r//删除没个用户的cron服务crontab-e//编辑某个用户的cron服务比如说root查看自己的cron设置:crontab-uroot-l再例如,root想删除fred的cron设置:crontab-ufred-r、编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab-uroot-e进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1****ls>>/tmp/ls.txt编辑/etc/crontab文件,在末尾加上一行:305***rootinit6这样就将系统配置为了每天早上5点30自动重新启动。需要将crond设置为系统启动后自动启动的服务,可以在/etc/rc.d/rc.local中,在末尾加上servicecrondstart如果还需要在系统启动十加载其他服务,可以继续加上其他服务的启动命令。比如:servicemysqldstart基本用法:1.crontab-l列出当前的crontab任务2.crontab-d删除当前的crontab任务3.crontab-e(solaris5.8上面是crontab-r)编辑一个crontab任务,ctrl_D结束4.crontabfilename  以filename做为crontab的任务列表文件并载入  crontabfile的格式:  crontab文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间  分钟(0-59)  小时(0-23)  日期(1-31)  月份(1-12)  星期几(0-6,其中0代表星期日)  第6个字段是一个要在适当时间执行的字符串  例子:  #MINHOURDAYMONTHDAYOFWEEKCOMMAND  #每天早上6点10分  106***date  #每两个小时  0*/2***date(solaris5.8似乎不支持此种写法)  #晚上11点到早上8点之间每两个小时,早上8点  023-7/2,8***date  #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点  0114*mon-weddate  #1月份日早上4点  041jan*date  补充:在使用crontab的时候,要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中的环境变量未必一致,一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)  (1)先建一个文件crond.txt如下,每天早上5点36分重新启动  365***reboot  (2)上传到/opt目录  (3)运行命令  crontab/opt/crond.txt  crontab-l  让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后。也要重新启动cron服务器。  在Fedora和Redhat中,我们应该用;  #/etc/init.d/crondrestart  如果让crond在开机时运行,应该改变其运行级别;  #chkconfig–levels35crondon  servicecrondstatus查看cron服务状态,如果没有启动则servicecrondstart启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务

如何写一个linux的定时程序脚本?(代码)?

概述

linux用到定时任务需要crontab的帮助

首先终端键入:crontab -e

root@sys #:crontab -e

然后进行编辑,这里操作和vim操作一至

假设,我需要定时每秒访问一次指定网页,访问网页的脚本已经写好了,叫view.sh,放在了/user目录下,那么定时脚本将需要这么些。

*/1 * * * * /bin/sh /user/view.sh

解析

crontab

参数:

-u: 只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;

-e: 编辑crontab 的工作内容;

-l: 查阅crontab的工作内容;

-r: 删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑。

crontab -e 进入编辑模式 #此时会进入vi的编辑界面让你编辑工作。注意到,每项工作都是一行。

*/1 * * * * /bin/sh /user/view.sh#分 时 日 月 周 |=========命令行===|

代表意义 分钟 小时 日期 月份 周 命令

数字范围 0~59 0~23 1~31 1~12 0~7 就命令啊

特殊字符 – 代表意义

*(星号) — 代表任何时刻都接受的意思。举例来说,范例一内那个日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。

,(逗号) — 代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:

0 3,6 * * * command

时间还是有五列,不过第二列是 3,6 ,代表3与6都适用

-(减号) — 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:

20 8-12 * * * command

仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思

/n(斜线) — 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:

*/5 * * * * command

用*与/5来搭配,也可以写成0-59/5,意思相同

拓展内容

linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。