我的问题类似:如何编写一个执行现有启动脚本的初始化脚本?
但是,这个问题已经过时了,我想知道如何在 Ubuntu 20.04 中做到这一点
这是我在 init.d 目录中的尝试:
#! /bin/sh
### BEGIN INIT INFO
# Provides: myrec
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO
PATH=/home/ahmad/recordings
DESC="Recording audio output"
NAME=myrec
DAEMON=/home/ahmad/recordings/myrec.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
我想在所有进程执行完毕后运行它,所以我应该使用 systemd 服务还是上面的服务可以?
我是否应该向上面添加其他代码或者它运行我的 sh (
myrec.sh
) 文件?
一般来说,hello world
在 ubuntu 20.04 中执行一个简单的 bash(以便我可以看到结果)是什么?我在网上找到的所有内容都已过时
答案1
在 Ubuntu 上启动服务有两种常用方法:
- 在目录中创建服务文件
/etc/init.d
。
您可以查看现有的示例。以前有一个名为的模板文件skeleton
,现在已不存在。但是,您可以通过运行 找到一个基本示例和更多帮助man init-d-script
。
创建文件后,运行sudo update-rc.d myservice defaults
安装您的服务(此处称为myservice
)。请参阅更新-rec.d,然后你可以使用启动和停止你的服务sudo service myservice start
- 第二个也是推荐的或新的方法是创建
SystemD
服务。
要了解与上述检查的区别:systemctl init.d 和 service 之间的区别
以下是如何创建和运行服务的简单示例:
https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/
您还可以参考他的手册页来了解这两种风格的详细描述: