linux服务管理有两种方式service和systemctl
/lib/systemd/system/
和 /etc/systemd/system
存放所有可用的单元文件
systemctl test.service start
比如需要开机启动 start_main 程序
第一步:编写要启动的sh脚本
例如 ubuntu@name:/home$ test.sh
#!/bin/bash
./home/start_main
第二步:编写start.service
#**** *.service***
# THIS IS A GENERATED FILE, NOT RECOMMENDED TO EDIT.
[Unit]
Description="startup service"
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash /home/test.sh
[Install]
WantedBy=multi-user.target
将文件放在/usr/lib/systemd/system 或者 /etc/systemd/system目录下,然后可以测试一下:
sudo systemctl start test.service
sudo systemctl enable test.service
设置test脚本开机启动。如果上一步没有出问题,这一步基本上也不会有什么问题,系统会打印出如下信息:
Created symlink /etc/systemd/system/multi-user.target.wants/test.service → /usr/lib/systemd/system/test.service.
方法二:
在/etc/init.d
目录下创建链接文件到前面的脚本: ln -s /home/test/blog/startBlog.sh /etc/init.d/startBlog
。 /或者直接在/etc/init.d
目录下创建脚本,
进入/etc/init.d
目录,用 update-rc.d
命令将连接文件 startBlog 添加到启动脚本中去:update-rc.d startBlog defaults 99
。
其中的99表示启动顺序,取值范围是0-99
。序号越大的越晚执行。
移除启动的脚本:update-rc.d -f startBlog remove
。-f
选项表示强制执行。