我需要开发一个/etc/init.d
脚本来在 Debian 10 Buster 中启动和停止服务器(二进制可执行文件)。而在早期版本的 Debian 中,您需要编写一个完整的 shell 脚本来发出对 的调用'start-stop-daemon'
,而在最近的版本中,这些机制似乎已被抽象化。手册页'init-d-script'
提供了一个简单的脚本,该脚本将根据设置单个变量来启动和停止服务器'DAEMON'
。
但是我需要通过在服务器启动后将锁定文件写入磁盘来进行定制,更改当前工作目录并将自定义参数传递给服务器。
手册页提到开发覆盖函数,例如'do_start_override'
和,它们可能被调用来代替默认函数。我应该如何编写覆盖函数?我应该从中'do_stop_override'
复制并粘贴函数并进行修改吗?或者我应该调用在中定义的函数?'do_start_cmd()'
'/lib/init/init-d-script'
'start_daemon()'
'/lib/lsb/init-functions'
答案1
自作聪明的回应:
apt-get install sysvinit-core
免责声明:我没有在 Buster 上做过这个,请不要在重要系统上尝试。
假设你想坚持使用 Jessie 以来的新默认设置,systemd,init.d 脚本不是首选方法。配置 systemd 服务单元才是正确答案。