我的问题类似于:如何编写将执行现有启动脚本的初始化脚本?
但是,这个问题已经过时了,我想知道如何在 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(以便我可以看到结果)是什么?我在网上找到的所有东西都过时了
在 Ubuntu 上启动服务有两种常用方法:
/etc/init.d
在目录中制作服务文件。您可以检查现有的作为示例。曾经有一个名为的模板文件
skeleton
现在不存在了。但是,您可以通过运行找到基本示例和更多帮助man init-d-script
。创建文件后运行
sudo update-rc.d myservice defaults
安装您的服务(此处称为myservice
)。参考update-rec.d,然后您可以使用sudo service myservice start
SystemD
服务。要知道与上述检查的区别:systemctl init.d and service之间的区别
下面是一个如何创建和运行服务的简单示例:
https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/
你也可以参考他的手册页来了解这两种风格的详细描述:
http://0pointer.de/public/systemd-man/daemon.html