Mik*_*eyB 16
在 Debian 上,服务和应用程序启动和关闭脚本应该放在/etc/init.d/.
Debian 提供了一个示例脚本/etc/init.d/skeleton,您可以根据自己的喜好对特定应用程序进行修改。
到位后,请致电:
# update-rc.d YOURAPP defaults
Run Code Online (Sandbox Code Playgroud)
让 Debian/etc/rc?.d/为您添加符号链接。
如果您更喜欢菜单或图形界面,请查看sysv-rc-conf或ksysv包。
自 Debian Jessie 以来,旧init程序已被systemd.
自己检查一下。运行:ls -l /sbin/init看看它指向什么。现在它指向systemd( /sbin/init -> /lib/systemd/systemd),一个更新更好的初始化程序。
所以这里的选择和其他答案现在已经过时了
*虽然您仍然可以使用 System-V 工具以旧方式安装脚本,但一般来说这不是一个好主意。
man systemd.service 说:*
如果以某个名称请求服务但未找到单元配置文件,则 systemd 会查找同名的 SysV init 脚本……并从该脚本动态创建服务单元。这对于与 SysV 的兼容性很有用。请注意,这种兼容性非常全面,但不是 100%。
这比你想象的要容易。(-:
这是安装启动或关机程序的新方法和首选方法。
有了systemd你首先要创建的单元文件。单元文件主要是声明,而不是代码。
然后您将使用该systemctl命令启用或启动该单元。
systemd为您完成大部分工作,例如,让关键程序在崩溃或以其他方式被终止时自动重新启动。此外,它会在默认情况下关闭您的程序,而无需您进行额外的工作。
从systemd这里开始学习:
手册页开头:
man systemd.unit -- 关于一般单元文件
man systemd.service -- 关于服务单元文件,例如守护进程和单次运行程序。
man systemctl -- 命令行用户界面
man journalctl-- 查看 systemd 所做操作的日志
man systemd -- 关于 init 程序本身
还有各种其他类型的单元文件,例如
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
Run Code Online (Sandbox Code Playgroud)
手动运行单元文件,(例如用于测试):
$ sudo systemctl start noip2。$ sudo systemctl restart noip2。$ sudo systemctl stop noip2。配置系统在启动或关闭时自动运行单元文件:
$ sudo systemctl enable noip2。$ sudo systemctl disable noip2。查看日志
$ sudo journalctl -u noip2| 归档时间: |
|
| 查看次数: |
41319 次 |
| 最近记录: |