如何编写将在 Ubuntu 20.04 中执行现有启动脚本的 init 脚本?

Ahm*_*mad 3 init.d scripts services 20.04

我的问题类似于:如何编写将执行现有启动脚本的初始化脚本?

但是,这个问题已经过时了,我想知道如何在 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
Run Code Online (Sandbox Code Playgroud)
  • 我想在所有进程执行后运行它,所以我应该使用 systemd 服务还是上面的可以?

  • 我应该在上面添加其他代码还是运行我的 sh ( myrec.sh) 文件?

一般而言hello world,为 ubuntu 20.04 执行简单的 bash(以便我可以看到结果)是什么?我在网上找到的所有东西都过时了

Ahm*_*mad 5

在 Ubuntu 上启动服务有两种常用方法:

  1. /etc/init.d目录中制作服务文件。

您可以检查现有的作为示例。曾经有一个名为的模板文件skeleton,现在已经不存在了。但是,您可以通过运行找到基本示例和更多帮助man init-d-script

创建文件后,运行sudo update-rc.d myservice defaults以安装您的服务(此处称为myservice)。参考update-rec.d,然后你可以使用启动和停止你的服务sudo service myservice start

  1. 第二个也是推荐的或新的SystemD服务是创建服务。

要知道与上面检查的区别:systemctl init.d 和 service 的区别

以下是如何创建和运行服务的简单示例:

https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/

你也可以参考他的手册页来了解这两种风格的详细描述:

http://0pointer.de/public/systemd-man/daemon.html