linux开机自动加载shell脚本
方法三:systemd实现
/usr/local/tomcat/bin/catalina.sh 设置tomcat启动环境变量
JAVA_HOME=/usr/local/jdk1.8.0_201/
JRE_HOME=$JAVA_HOME/jre
vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
开启tomcat自启动:
systemctl enable tomcat.service
启动服务:systemctl start xxx.service
关闭服务:systemctl stop xxx.service
重启服务:systemctl restart xxx.service
显示服务的状态:systemctl status xxx.service
在开机时启用服务:systemctl enable xxx.service
在开机时禁用服务:systemctl disable xxx.service
查看服务是否开机启动:systemctl is-enabled xxx.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
关闭防火墙
在外部访问CentOS中部署应用时,需要关闭防火墙。
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
关闭开机自启动:systemctl disable firewalld.service
开启开机启动:systemctl enable firewalld.service
man systemd.service #参考
[unit]
Description:描述信息
After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反
Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活
Wants:依赖到的其它units,弱依赖
Conflicts:定义units间的冲突关系
[Service] #与特定类型相关的专用选项;此处为Service类型
Type:定义影响ExecStart及相关参数的功能的unit进程启动类型
simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中
forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止
oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中
dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname=才行
notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让 Systemd 接收消息
idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务
EnvironmentFile=/etc/sysconfig/sshd #环境file
ExecStart=/usr/sbin/sshd -D $OPTIONS #启动
ExecReload=/bin/kill -HUP $MAINPID #重启
KillMode=process #关闭
Restart=on-failure # Restart: fail 时重启
RestartSec=42s
[Target]
#.target定义了一些基础的组件,供.service文件调用
[Mount]
#.mount文件定义了一个挂载点,[Mount]节点里配置了What,Where,Type三个数据项
#等同于以下命令:mount -t hugetlbfs /dev/hugepages hugetlbfs
What=hugetlbfs
Where-/dev/hugepages
Type=hugetlbfs
[Install]:#定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项
Alias:别名,可使用systemctl command Alias.service
RequiredBy:被哪些units所依赖,强依赖
WantedBy:被哪些units所依赖,弱依赖 多用户模式下需要的
Also:安装本服务的时候还要安装别的相关服务