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).