标题几乎总结了一下。
如何在Debian OS的启动和关闭顺序中添加服务器应用程序的startup.sh和shutdown.sh?
标题几乎总结了一下。
如何在Debian OS的启动和关闭顺序中添加服务器应用程序的startup.sh和shutdown.sh?
Answers:
对于启动,看看这个。
对于关机,请创建一个链接/将脚本复制到/etc/rcX.d文件夹之一,其中X是您希望其执行的运行级别。我相信Debian的关机运行级别为0。
自Debian Jessie以来,旧init
程序已被替换为systemd
!
自己检查一下。运行:ls -l /sbin/init
查看其指向的内容。如今,它指向systemd
(/sbin/init -> /lib/systemd/systemd
),这是一个更新更好的初始化程序。
因此,此处选择的答案和其他答案已经过时了!!!
*尽管您仍然可以使用System-V工具以旧方式安装脚本,但从总体上来说,这不是一个好主意。
man systemd.service
说:*
如果以特定名称请求服务,但未找到任何单元配置文件,则systemd将查找具有相同名称的SysV初始化脚本...并根据该脚本动态创建服务单元。这对于与SysV兼容很有用。请注意,此兼容性非常全面,但并非100%。
它比您想象的要容易。(-:
这是安装启动或关闭程序的新的首选方法。
随着systemd
你首先要创建一个单元文件。单位文件主要是声明,而不是代码。
然后,您将使用systemctl
命令启用或启动该单元。
systemd
为您完成了很多工作,例如,使某个关键程序崩溃或被杀死时,它很容易自动重新启动。它还会在默认情况下在何时何地关闭程序,而无需您进行任何额外的工作。
systemd
在这里开始了解:
手册页开始于:
man systemd.unit
-关于一般的单元文件
man systemd.service
-关于服务单元文件,例如守护程序和单次运行程序。
man systemctl
-命令行用户界面
man journalctl
-查看systemd完成的日志
man systemd
-关于初始化程序本身
还有许多其他类型的单位文件,例如
man systemd.target
-适用于群组和共同的同步目标。
掌握man -k systemd
了以上基础知识之后,请深入研究以找到其他相关的手册页。
无论您做什么,在Debian上都不要使用以下任何一种方法:
update-rc.d
-安装和删除System-V样式的初始化脚本链接sysv-rc-conf
-SysV的运行级别配置,例如初始化脚本链接runlevel
-打印以前和当前的SysV运行级别BUM
- 乙 OOT ü p 中号 anager -图形运行级别编辑器systemadm
-systemd系统和服务管理器的图形前端当我启动时,此单位文件启动NoIP.com守护程序,而当我关闭时,将其关闭。
这个守护进程,不时,把我目前的IP地址来更新我的DDNS(d ynamic DNS(d omain ñ AME 小号 erver))提供的数据的基础上,从而保持我的域名指向我的电脑无论它前往。
该单位文件位于我的系统上的以下设置文件中: /etc/systemd/system/noip2.service
这是单位文件中的内容:
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
手动运行单位文件(例如,用于测试):
$ sudo systemctl start noip2
。 $ sudo systemctl restart noip2
。 $ sudo systemctl stop noip2
。 配置系统以在启动或关闭时自动运行单元文件:
$ sudo systemctl enable noip2
。 $ sudo systemctl disable noip2
。查看日志
$ sudo journalctl -u noip2