服务器使用的是Ubuntu,开机启动特定程序和定时自动重启服务器涉及到2个文件:
-
/etc/rc.local
: 添加开机时自动执行特定程序的命令。 -
/etc/crontab
: 添加定时重启命令。
开机启动特定程序:
比如假设安装tomcat在/usr/local/tomcat/
下,设置开机启动tomcat,则添加执行tomcat
的bin
目录下的startup.sh
文件的命令:
su - root -c "/usr/local/tomcat/bin/startup.sh"
。
完整的rc.local
文件的配置:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
su - root -c "/usr/local/tomcat/bin/startup.sh"
exit 0
比如需要开机启动特定java程序,java程序所在目录: /server/myProject.jar
,则添加命令:
su - root -c "java -jar /server/myProject.jar"
.
完整的rc.local
文件:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
su - root -c "/usr/local/tomcat/bin/startup.sh"
su - root -c "java -jar /server/myProject.jar"
exit 0
定时执行特定命令
crontab
文件默认的内容:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
init 6
是重启机器的命令,比如需要在每天的5:30am重启机器,则添加命令:
30 5 * * * root init 6
完整的crontab
文件内容:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
30 5 * * * root init 6
#
网友评论