我正在学习journald
和rsyslog
阅读时我看到可以rsyslog
从/dev/kmsg
和 中journald
读取/dev/kmsg
和/proc/ksmg
。
我知道这些都是内核日志,但是/proc/kmsg
和之间有什么区别/dev/kmsg
?为什么一个看起来是一个进程而另一个看起来是一个设备?
man for systemd unit 的定义有点不清楚:https : //www.freedesktop.org/software/systemd/man/systemd.unit.html
如果一个单元
foo.service
包含一个设置Before=bar.service
并且两个单元都在启动,则bar.service
的启动将延迟到foo.service
启动。[...]After=
是 的倒数Before=
,即 whileAfter=
确保在列出的单元完成启动后启动已配置的单元,Before=
确保相反,在启动列出的单元之前已配置的单元完全启动。
可以说我有a.service
和b.service
。我想a.service
之前完全启动,b.service
因为b.service
取决于a.service
.
阅读上述手册页后,我找不到任何关于是否的结论性解释:
Before=b.service
在a.service
单元文件中指定After=a.service
在b.service
单元文件中指定After=a.service
在b.service
单位的文件,并 Before=b.service
在a.service
单元文件我需要为 systemd 单元文件声明哪些依赖项?有关系吗?
我目前正在重写作业upstart
以使用systemd
,我想知道:
“默认”位置在哪里 EnvironmentFile
哪里?
它可能会进入 /etc/environment
它可能包含 中的所有其他服务文件/etc/systemd/service
,/run/systemd/system
或者/lib/systemd/system
但我EnvironmentFile
在这些位置没有看到任何其他sService
。
我也讨论过 /etc/default/
或/etc/<PACKAGE_NAME>
没有记录在案的“常规”位置可以放置它。我见过的许多示例似乎都在使用/tmp/<FILE_NAME>
,这/tmp
在重新启动时被擦除是没有意义的,并且这些文件需要保留,以便在Service
启动或重新启动时可以引用它们。
背景:我EnvironmentFile
在安装 debian 软件包之前生成预安装时间(使用维护者脚本),并且我知道每次启动/重新启动服务时该文件都必须可用。
我想制作自己的 debian 软件包,并将其安装在/opt/A/B/C
.
当覆盖dh_auto_install
文档显示您可以使用 params--destdir=
和-- prefix=
.
如果我想安装我的 debian 内容,/opt/A/B/C
我可以通过以下方式指定:
override_dh_auto_install:
dh_auto_install -- prefix=/opt/A/B/C
Run Code Online (Sandbox Code Playgroud)
或者
override_dh_auto_install:
dh_auto_install --destdir=/opt/A/B/C
Run Code Online (Sandbox Code Playgroud)
注意:我计划将 deb 安装到 Ubuntu 14.04 系统上。
我正在创建一个小的 Debian 包来安装 systemd 单元文件,特别是*.service
文件。
我的包裹看起来像:
myservice
|
|--debian
|- comapat
|- preinst
|- postinst
|- rules
|- myservice.service
Run Code Online (Sandbox Code Playgroud)
当我安装我的软件包时,systemd 服务会自动禁用并且不会启动。
安装后立即systemctl status myservice
显示
root@ubuntu-xenial:~# systemctl status myservice
? myservice.service - My Service - echos output and says when it started
Loaded: loaded (/lib/systemd/system/myservice.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
但是,当我在没有postinst
脚本的情况下安装我的包时,systemd 服务会自动启用,并且它们会在安装后启动。
root@ubuntu-xenial:~# systemctl status myservice
? myservice.service - MyService - echos output and says when it started
Loaded: loaded (/lib/systemd/system/myservice.service; …
Run Code Online (Sandbox Code Playgroud)