Linux开机启动项

张天师大约 1 分钟

一、systemd启动

相关信息

systemd提供更优秀的框架以表示系统服务间的依赖关系

并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果

(1) 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;

(2) 用Cgroups代替PID来追踪进程,因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制

示例-mongodb数据库开机自启动

cat > /usr/lib/systemd/system/mongod.service <<EOF

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking

# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

[Install]
WantedBy=multi-user.target
EOF

#设置mongod开机自启
systemctl enable mongod

二、自定义脚本启动

cat > /etc/init.d/startapi.sh <<EOF
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
nohup /root/api &
EOF

chmod +x /etc/init.d/startapi.sh
chkconfig --add startapi.sh
chkconfig startapi.sh on

#移除此启动项
chkconfig startapi.sh off
chkconfig --del startapi.sh

三、使用定时任务

chmod +x /home/startapi.sh
echo "* * * * * root /home/startapi.sh" >> /etc/crontab