如何编写一个将在 Ubuntu 20.04 中执行现有启动脚本的初始化脚本?

如何编写一个将在 Ubuntu 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
  • 我想在所有进程执行完毕后运行它,所以我应该使用 systemd 服务还是上面的服务可以?

  • 我是否应该向上面添加其他代码或者它运行我的 sh ( myrec.sh) 文件?

一般来说,hello world在 ubuntu 20.04 中执行一个简单的 bash(以便我可以看到结果)是什么?我在网上找到的所有内容都已过时

答案1

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

  1. 在目录中创建服务文件/etc/init.d

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

创建文件后,运行sudo update-rc.d myservice defaults安装您的服务(此处称为myservice)。请参阅更新-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

相关内容