linux 计时器?linux查看软件运行状态

linux定时任务

linux定时任务使用crontab命令

crontab命令说明

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

语法

crontab(选项)(参数)

选项

-e:编辑该用户的计时器设置;

-l:列出该用户的计时器设置;

-r:删除该用户的计时器设置;

-u<用户名称>:指定要设定计时器的用户名称。

参数

crontab文件:指定包含待执行任务的crontab文件。

知识扩展

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

/etc/crontab文件包括下面几行:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=""HOME=/

# run-parts

51**** root run-parts/etc/cron.hourly

24 7*** root run-parts/etc/cron.daily

22 4** 0 root run-parts/etc/cron.weekly

42 4 1** root run-parts/etc/cron.monthly

前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致,使用者权限文件如下:

/etc/cron.deny该文件中所列用户不允许使用crontab命令

/etc/cron.allow该文件中所列用户允许使用crontab命令

/var/spool/cron/所有用户crontab文件存放的目录,以用户名命名

crontab文件的含义:用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command顺序:分时日月周

其中:

minute:表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

crond服务

/sbin/service crond start//启动服务

/sbin/service crond stop//关闭服务

/sbin/service crond restart//重启服务

/sbin/service crond reload//重新载入配置

查看crontab服务状态:

service crond status

手动启动crontab服务:

service crond start

查看crontab服务是否已设置为开机启动,执行命令:

ntsysv

加入开机自动启动:

chkconfig–level 35 crond on

Linux系统中使用屏幕键盘的方法

屏幕键盘可以作为实体键盘输入的替代方案。在某些时候,屏幕键盘显得非常需要。比如,你的键盘刚好坏了;你的机器太多,没有足够的键盘;你的机器没有多余的接口来连接键盘;你是个残疾人,打字有困难;或者你正在组建基于触摸屏的信息服务站。

屏幕键盘也可以作为一种防范实体键盘记录器的保护手段,键盘记录器会悄悄记录按键来获取密码等敏感信息。一些网上银行页面实际上会强制你使用屏幕键盘来增强交易的安全性。

在 linux中有几个可用的开源键盘软件,比如 GOK(Gnome的屏幕键盘),kvkbd,onboard,Florence。

我会在这个教程中集中讲解 Florence,告诉你如何用 Florence设置一个屏幕键盘。 Florence有着布局方案灵活、输入法多样、自动隐藏等特性。作为教程的一部分,我也将会示范如何只使用鼠标来操作 Ubuntu桌面。

在 Linux中安装 Florence屏幕键盘

幸运的是,Florence存在于大多数 Linux发行版的基础仓库中。

在 Debian,Ubuntu或者 Linux Mint中:

$ sudo apt-get install florence

在 Fedora,CentOS或者 RHEL(CentOS/RHEL需要EPEL仓库)中:

$ sudo yum install florence

在 Mandriva或者 Mageia中:

$ sudo urpmi florence

对于 Archlinux用户,Florence存在于 AUR中。

配置和加载屏幕键盘

当你安装好 Florence之后,你只需要简单的输入以下命令就能加载屏幕键盘:

$ florence

默认情况下,屏幕键盘总是在其他窗口的顶部,让你能够在任意活动的窗口上进行输入。

在键盘的左侧点击工具按键来改变 Florence的默认配置。

在 Florence的"样式(style)"菜单中,你能够自定义键盘样式,启用/取消声音效果。

在“窗口(window)”菜单中,你能够调整键盘背景透明度、按键不透明度,以及控制键盘比例、工具栏、尺寸和总是置顶等特性。如果你的桌面分辨率不是非常高,透明度调整就显得非常有用,因为屏幕键盘会挡住其他窗口。在这个例子中,我切换到透明键盘,并且设置不透明度为 50%。

在“行为(behaviour)”菜单中,你能够改变输入方法。Florence支持几种不同的输入法:鼠标(mouse)、触摸屏(touch screen)、计时器(timer)和漫步(ramble)。鼠标输入是默认输入法。最后的两种输入法不需要按鼠标键。计时器输入通过将指针滞留在按键上一定时间来触发按键。漫步输入的原理跟计时器输入差不多,但是经过训练和灵巧使用,能够比计时器输入更加迅速。

在“布局(layout)”菜单中,你能够改变键盘布局。比如,你能够扩展键盘布局来增加导航键,数字键和功能键。

只使用鼠标来操作 Ubuntu桌面

我将示范如何将 Florence集成到 Ubuntu桌面中,然后我们不需要实体键盘就能够进入桌面。这个教程使用 LightDM(Ubuntu的默认显示管理器)来进入 Ubuntu,其他桌面环境也能设置类似的环境。

初始设置时需要实体键盘,但是一旦设置完成,你只需要一个鼠标,而不是键盘。

当你启动 Ubuntu桌面时,启动程序最后会停在显示管理器(或者登录管理器)的欢迎界面。在这个界面上你需要输入你的登录信息。默认的情况下,Ubuntu桌面会使用 LightDM显示管理器和 Unity欢迎界面。如果没有实体键盘,你就不能在登录界面输入用户名和密码。

为了能够在登录界面加载屏幕键盘,安装配备了屏幕键盘支持的 GTK+欢迎界面。

$ sudo apt-get install lightdm-gtk-greeter

然后用编辑器打开欢迎界面配置文件(/etc/lightdm/lightdm-gtk-greeter.conf),指定 Florence作为屏幕键盘来使用。如果你愿意,你也能够使用 Ubuntu的默认屏幕键盘 onboard来代替 Florence。

$ sudo vi/etc/lightdm/lightdm-gtk-greeter.conf

[greeter]keyboard=florence--no-gnome--focus

重启 Ubuntu桌面,然后看看你是否能够在登录界面使用屏幕键盘。

启动之后当你看到 GTK+欢迎界面时,点击右上角的人形符号。你会看到“使用屏幕键盘(On Screen Keyboard)”菜单选项,如下:

点击这个选项,屏幕键盘就会在登录界面弹出。现在你应该能够用屏幕键盘来登录了。

对于 GDM2/GDM3用户怎么在 GDM2/GDM3界面上使用屏幕键盘,Florence官方网页提供了文档(documentation)。

Ubuntu桌面完全无键盘化的最后一步是让屏幕键盘在登录后自动启动,这样我们在登录后能够不使用实体键盘就操作桌面,为了做到这一点,创建以下桌面文件:

$ mkdir-p~/.config/autostart$ vi~/.config/autostart/florence.desktop

[Desktop Entry]Type=ApplicationName=Virtual KeyboardComment=Auto-start virtual keyboardExec=florence--no-gnome

这样可以让你在登录到桌面的时候就看到屏幕键盘。

希望这个教程对你有用。与你所看到的一样,Florence是非常强大的屏幕键盘,可以用于不同目的。请和我分享你使用屏幕键盘的经验。

c语言中怎么设置计时器

C语言计时可以用很多方法。

1.如果是想使用秒级别的技术,可用使用C语言库<time.h>自带的clock()进行计时。如:

#include<iostream>

#include<time.h>

using namespace std;

int main()

{

clock_t start= clock();

//do some process here

clock_t end=(clock()- start)/CLOCKS_PER_SEC;

cout<<"time comsumption is"<<end<<endl;

}

以上方法只能用于秒级别的计时。

2.如果想使用毫秒级别的计时可以使用2种方法。一种是使用linux的系统库<sys/time.h>,一种是使用CUDA的cutil的库。

A.如果使用linux的系统库,则可以使用如下方法:

#include<sys/time.h>

int main()

{

timeval starttime,endtime;

gettimeofday(&starttime,0);

//do some process here

gettimeofday(&endtime,0);

double timeuse= 1000000*(endtime.tv_sec- starttime.tv_sec)+ endtime.tv_usec- startime.tv_usec;

timeuse/=1000;//除以1000则进行毫秒计时,如果除以1000000则进行秒级别计时,如果除以1则进行微妙级别计时

}

timeval的结构如下:

strut timeval

{

long tv_sec;/*秒数*/

long tv_usec;/*微秒数*/

};

上述方法可以进行微妙级别的计时,当然也可以进行毫秒和秒的计时。

B.如果可以使用CUDA的话,则可以使用CUDA的sdk里面的cutil库里面的函数。

#include<cutil.h>

int main()

{

unsigned int timer= 0;

cutCreatTimer(&timer);//创建计时器

cutStartTimer(&timer);//开始计时

// do some process here

cutStopTimer(&timer);//停止计时

cout<<"time is"<<cutGetTimerValue(&timer)<<endl;//打印时间

}

阅读剩余
THE END