service自启动服务设置
1.进入/usr/lib/systemd/system目录,编辑xx.service文件如下:[Unit]Description=dvs app CompatibilityAfter=multi-user.target systemd-update-utmp-runlevel.service[Service]Type=simpleExecStart=/home/app/start.shStanda
1.进入/usr/lib/systemd/system目录,编辑xx.service文件如下:
[Unit]
Description=dvs app Compatibility
After=multi-user.target systemd-update-utmp-runlevel.service
[Service]
Type=simple
ExecStart=/home/app/start.sh
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
并赋予执行权限
chmod 777 xx.service
[Unit] 启动顺序与依赖关系
Description:当前服务的简单描述
Documentation:指定 man 文档位置
After:如果 network.target 或 sshd-keygen.service 需要启动,那么 sshd.service 应该在它们之后启动
Before:定义 sshd 应该在哪些服务之前启动
注意:After 和 Before 字段只涉及启动顺序,不涉及依赖关系。
Wants:表示 sshd.service 与 sshd-keygen.service 之间存在"弱依赖"关系,
Requires:表示"强依赖"关系,即如果该服务启动失败或异常退出,那么sshd.service 也必须退出
注意:Wants 字段与 Requires 字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动。
2.进入/home/app目录,编译需要上电自启动的脚本程序,如vi start.sh
#!/bin/sh
. /etc/profile
set -e
echo "z1" >> /home/app/test.txt
dmesg -C
echo "z2" >> /home/app/test.txt
#prepare
echo "z3" >> /home/app/test.txt
/usr/local/bin/init.sh --na
并给脚本赋予执行权限
chmod 777 start.sh
EnvironmentFile:许多软件都有自己的环境参数文件,该字段指定文件路径 注意:/etc/profile 或者 /etc/profile.d/ 这些文件中配置的环境变量仅对通过 pam 登录的用户生效,而 systemd 是不读这些配置的。 systemd 是所有进程的父进程或祖先进程,它的环境变量会被所有的子进程所继承,如果需要给 systemd 配置默认参数可以在 /etc/systemd/system.conf 和 /etc/systemd/user.conf 中设置。 加载优先级 system.conf 最低,可能会被其他的覆盖。 Type:定义启动类型。可设置:simple,exec,forking,oneshot,dbus,notify,idle simple(设置了 ExecStart= 但未设置 BusName= 时的默认值):ExecStart 字段启动的进程为该服务的主进程 forking:ExecStart 字段的命令将以 fork() 方式启动,此时父进程将会退出,子进程将成为主进程 ExecStart:定义启动进程时执行的命令 上面的例子中,启动 sshd 执行的命令是 /usr/sbin/sshd -D $OPTIONS,其中的变量 $OPTIONS 就来自 EnvironmentFile 字段指定的环境参数文件。类似的,还有如下字段: ExecReload:重启服务时执行的命令 ExecStop:停止服务时执行的命令 ExecStartPre:启动服务之前执行的命令 ExecStartPost:启动服务之后执行的命令 ExecStopPost:停止服务之后执行的命令 RemainAfterExit:设为yes,表示进程退出以后,服务仍然保持执行 KillMode:定义 Systemd 如何停止服务,可以设置的值如下: control-group(默认值):当前控制组里面的所有子进程,都会被杀掉 process:只杀主进程 mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号 none:没有进程会被杀掉,只是执行服务的 stop 命令 Restart:定义了退出后,Systemd 的重启方式。可以设置的值如下: no(默认值):退出后不会重启 on-success:只有正常退出时(退出状态码为0),才会重启 on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启 on-abnormal:只有被信号终止和超时,才会重启 on-abort:只有在收到没有捕捉到的信号终止时,才会重启 on-watchdog:超时退出,才会重启 always:不管是什么退出原因,总是重启 RestartSec:表示 Systemd 重启服务之前,需要等待的秒数

3.使能xx.service
# systemctl enable dvs.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dvs.service to /etc/systemd/system/dvs.service.
更多推荐


所有评论(0)