以supervisord服务脚本为例:php
第1步:把上面的脚本放在/etc/init.d/文件linux
ln -s ./supervisord /etc/init.d/supervisord
apache
第2步:将启动脚本权限改成可执行。编辑器
chmod
a+x /etc/init.d/supervisord
第3步:添加启动项。spa
chkconfig --add supervisord
chkconfig supervisord on
第4步:检查是否设置成功。操作系统
chkconfig --list | grep supervisord supervisord 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
二、手动配置在文件中加入启动命令命令行
三、文件指向路径是/etc/init.d下的脚本文件rest
0-6是linux操做系统的运行级别,运行runlevel查看当前运行级code
运行级别0:系统停机状态,系统默认运行级别不能设为0,不然不能正常启动
运行级别1:单用户工做状态,root权限用户,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS)
运行级别3:彻底的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,不然不能正常启动
/etc/rc[0-6].d目录下文件的命名规则:S|K + nn + script进程
S|K,S开头命名的是开机要执行的脚本,K开头命名的是关机要执行的脚本
nn取值0-100,表示优先级,数字越大,优先级越低
script是软连接指向的脚本的文件名
/etc/init.d目录下的控制脚本接受参数
-- start //启动
-- stop //中止
-- restart //重启
-- status //状态
-- force-reload //从新载入配置
update-rc.d命令为/etc/init.d目录下的脚本创建或删除到/etc/rc[0-6].d的软连接
增长一个服务
添加这个服务并让它开机自动执行
update-rc.d apache2 defaults
而且能够指定该服务的启动顺序:
update-rc.d apache2 defaults 90
还能够更详细的控制start与kill顺序:
update-rc.d apache2 defaults 20 80
其中前面的20是start时的运行顺序级别,80为kill时的级别。也能够写成:
update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .
其中0~6为运行级别。
删除一个服务
update-rc.d -f apache2 remove
经过将应用程序的.desktop文件放在自启动目录下,那么当用户登录桌面环境时,就会自动启动这些应用程序。
linux中自启动目录是$XDG_CONFIG_DIRS/autostart和$XDG_CONFIG_HOME/autostart这两个,能够打印看一下,有的可能只有其中一个。
把设置好的.desktop放在这两个目录下,那么指定的程序就会在桌面环境启动时启动,当两个自启动目录同时存在相同的文件时,只会运行其中一个($XDG_CONFIG_HOME)。
program.desktop文件写法:
[Desktop Entry]
Name=program
Exec=/usr/bin/program
Type=Application
Comment=my program
只须要有这关键的几行就能够了,Exec的路径必定要正确。.desktop文件还有其余定制项,可参考其余文章。
五、crontab定时执行任务
周期执行的任务通常由cron这个守护进程来处理[ps -ef|grep cron]
cron的配置文件称为“crontab”,是“cron table”的简写
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //从新载入配置
service crond status //查看服务状态
# 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
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
crontab -l //在标准输出上显示当前的c
crontab -r // 删除当前的crontab文件。
crontab -e //使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件,当结束编辑离开时,编辑后的文件将自动安装。
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*表明全部的取值范围内的数字,"/"表明每的意思,"/5"表示每5个单位,"-"表明从某个数字到某个数字,","分开几个离散的数字。