Jon*_*mar 11 arch-linux directory-structure systemd
适用于任何使用 systemd 管理进程并遵循Linux 基金会的文件系统层次结构标准的操作系统
我最近问到除了 systemd 单元文件之外的其他地方: 我应该将我的 systemd 单元文件放在 Arch Linux 的什么位置?
我想每 5 分钟运行一次python 脚本(不要与调用 python 脚本的 systemd 单元文件脚本混淆)。我阅读了这个问题的答案: 使用 systemd 每 30 分钟运行一次脚本
这就是我的问题所在。你应该或可以在哪里存储由 systemd 运行的脚本?是否为这些保留了位置,尤其是在 Arch Linux 上?
/var/logsystemd 单元文件放在 /etc/systemd/system这是一个示例服务。
[Unit]
Description=Run python script that writes hello in file on /media/5TB/hello.txt
[Service]
Type=oneshot
ExecStart=# <-- This is what I am looking for
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是一个相应的计时器。这都是有据可查的。
[Unit]
Description=test
[Timer]
Persistent=true
OnUnitActiveSec=10s
OnBootSec=10s
[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的路径。
#!/usr/bin/env python
import os
import datetime
now = datetime.datetime.now()
f1 = open('/media/mydrive/hello.txt','a')
f1.write('hello %s\n' % (now))
f1.close
Run Code Online (Sandbox Code Playgroud)
ako*_*nov 10
我也在考虑同样的问题,想看看其他人的意见。我上采取的是/usr/local/sbin因为sbin是你把应该由管理员运行的东西。
您的分析是正确的,/usr/local是专用于安装不受包管理器管理的东西的位置。但bin适用于普通用户应该可以运行的东西。在任何一种情况下,您都不应允许对任何人进行写访问,但root对/usr/local. 这就是我记得的约定(对于整个 /usr/)。
/opt通常用于系统默认不使用的包,用户应设置一些环境变量以通过 bin/man/etc 访问。特定包的目录。阅读我上面提供的链接。
请参阅RHEL FSH 概述以及最新的 FHS 文档。
以下是存储将要运行的内容的理想位置(有关详细信息,请参阅链接):
引用自文件系统层次结构标准 HS v2.3
本地安装的系统管理程序应放置在 /usr/local/sbin 中。
据我所知,当 FHS 文档提到“系统”时,它指的是某个“root”用户。
/usr/local/bin或者对于该计算机来说/usr/local/sbin 是唯一的(不适用于包管理器,例如脚本、CD 中的软件),即不是从公共源安装到所有计算机(不是包管理器)。/usr/local/bin所有用户都可以运行东西。/usr/local/sbinstuff只能由root运行(它是系统“二进制”目录)。
/usr/bin 不是唯一的(计算机之间共享的内容,例如来自包管理器,即包管理器使用此位置)
/root/binroot用户可以创建此目录而不是使用/usr/local/sbin. 这是一个存储只有root 用户运行或可以看到的内容的好地方(该文件夹只能由 root 或 root 组执行,因此除 root 之外的任何人都看不到其内容)您甚至可以在其中创建一个 bin 文件夹保持事情一致,但无论如何没人会知道:)
/home/<user>/bin 标准用户可以创建此目录。它是存储由 systemd 作为标准用户运行的脚本的好地方。
结论是,1 号位置是存储由 systemd 守护进程/服务运行的脚本的理想位置。
这说得通,
| 归档时间: |
|
| 查看次数: |
7129 次 |
| 最近记录: |