Linux应用自动启动配置(systemd)

在linux中有两种配置应用自启动的方法,分别是init.d和systemd,本文以systemd的方式简单配置快速达到应用自启动的效果。

第一种 简单粗暴直接修改/etc/rc.local在文件末尾添加应用的启动脚本 完

第二种

1.在/etc/systemd/system/下新建service文件 例如test.service

cd /etc/systemd/system/
touch test.service

2.文件内容如下 可根据需要进行增减 在systemd调用sh脚本时系统的环境变量无法使用 配置文件中Environment配置可以使用的环境变量信息格式为”key1=value1″ “key2=value2” “key3=value3” ,java命令就有可能找不到也可以在启动脚本中配置java的全路径解决

[Unit]
Description=应用的描述信息
After=network-online.target

[Service]
Type=forking
ExecStart=应用的启动脚本/命令
ExecReload=/bin/kill -HUP
KillMode=process
ExecStop=应用的停止脚本/命令            #(此行可删除)
User=执行命令的用户名例如(root)       #(此行可删除 默认为root执行)
#Environment="JAVA_HOME=/opt/mdw/jdk"   #(此行可删除)
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

3.添加到自启动列表

systemctl enable test.service

4.添加完成后就可以使用systemctl 控制应用的启停了

启动应用 systemctl start test.service

检查状态 systemctl status test.service

停止应用 systemctl stop test.service

如果修改了test.service 就需要重新加载配置文件

systemctl daemon-reload

日志目录

/var/log/message

注意 若systemctl start test.service 启动状态正常但应用却没有正常启动 就需要检查启动脚本中的参数信息了。因systemd在执行启动脚本或命令时不会读取系统环境变量信息 会导致脚本中的使用系统环境变量的$xxx的参数全部为空 就比如$JAVA_HOME参数 从而影响应用正常启动。

会出现启动后立即停止的情况 实际就是配置和环境问题造成的。