1、进程概念
所谓进程就是指现在系统正在执行的程序,每当输入一个命令时,Shell也会同时启动一个进程。
每个进程启动时,系统会指定一个唯一的数值给每个进程,数值称为进程ID。
每个进程都可能以两种方式存在:前台和后台。
系统的服务都是以后台方式存在,且都会常驻在系统中,直到关机结束。
系统网络服务一般都是后台服务进程。
[root@xiaoyu ~]# /etc/init.d/sshd status
openssh-daemon (pid 8734) is running...
[root@xiaoyu ~]# netstat -an | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 64 10.10.9.201:22 10.10.29.50:51683 ESTABLISHED
tcp 0 0 :::22 :::* LISTEN
unix 3 [ ] STREAM CONNECTED 86722
2、Linux定时任务---crond
2.1、什么是crond?
Crond是Linux系统中用来定期执行命令或者指定程序任务的一种服务或者软件。一般安装完Centos系统后,Crond一般会默认存在。我们优化开机自启服务的时候,第一个就是Crond。
Crond服务默认情况(每分钟),会检查系统中是否有需要执行的定时任务,如果有,就会根据事先定义好的规则来执行这个定时任务。对秒级任务无能为力。
[root@xiaoyu ~]# cat test.sh
while true
do
echo 'heqiuyu'
sleep 1
done
[root@xiaoyu ~]# sh test.sh
heqiuyu
heqiuyu
heqiuyu
heqiuyu
heqiuyu
^C
[root@xiaoyu ~]#
2.2分类
第一类,系统自身定期执行的任务
[root@xiaoyu ~]# ll /var/log/secure
-rw-------. 1 root root 5489 Jun 15 11:16 /var/log/secure
第二类,用户执行的crontab任务
[root@xiaoyu cron.d]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
at 适合一次就结束的调度任务
man crontab
NAME
crontab - maintain crontab files for individual users
SYNOPSIS
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
DESCRIPTION
Crontab is the program used to install, remove or list the tables used to drive the cron(8) daemon. Each user can have their own crontab, and though these are
files in /var/spool/ , they are not intended to be edited directly. For SELinux in mls mode can be even more crontabs - for each range. For more see selinux(8).
The cron jobs could be allow or disallow for different users. For classical crontab there exists cron.allow and cron.deny files. If cron.allow file exists, then
you must be listed therein in order to be allowed to use this command. If the cron.allow file does not exist but the cron.deny file does exist, then you must not
be listed in the cron.deny file in order to use this command. If neither of these files exists, only the super user will be allowed to use this command. The sec-
ond option is using PAM authentication, where you set up users, which could or couldn’t use crontab and also system cron jobs from /etc/cron.d/.
The temporary directory could be set in enviroment variables. If it’s not set by user than /tmp is used.
OPTIONS
-u Append the name of the user whose crontab is to be tweaked. If this option is not given, crontab examines "your" crontab, i.e., the crontab of the person
executing the command. Note that su(8) can confuse crontab and that if you are running inside of su(8) you should always use the -u option for safety’s
sake. The first form of this command is used to install a new crontab from some named file or standard input if the pseudo-filename "-" is given.
-l The current crontab will be displayed on standard output.
-r The current crontab will be removed.
-e This option is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables. After you exit from the editor,
the modified crontab will be installed automatically.
-i This option modifies the -r option to prompt the user for a ’y/Y’ response before actually removing the crontab.
-s It will append the current SELinux security context string as an MLS_LEVEL setting to the crontab file before editing / replacement occurs - see the documen-
tation of MLS_LEVEL in crontab(5).