小编Mar*_*rio的帖子

在启动 systemd 服务之前执行 chdir

问题:我可以使用 systemd 启动一个进程并为该进程指定一个我选择的工作目录吗?

我有一项我想开始的服务systemd。当该服务启动时,我希望能够为其分配一个当前工作目录。如果我正在使用init,我知道该怎么做,但是我在使用systemd.

这就是我一直在努力工作的内容。

我的服务

我创建了一个简单的实用程序(“listdir”),用 Python 编写,并放置在/opt/bin/listdir

#! /usr/bin/python

import os

print 'Current working directory: %s' % (os.getcwd())
Run Code Online (Sandbox Code Playgroud)

我的配置文件

然后我创建了一个listdir.service文件systemd并将它放在这里/lib/systemd/system/listdir.service

[Unit]
Description=Test of listing CWD.

[Service]
ExecStartPre=chdir /usr/local
ExecStart=/opt/bin/listdir
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

问题

当我运行systemctl start listdir我的系统日志时,将根目录(“/”)记录为当前工作目录。当然,我期望/usr/local作为当前目录,因为我认为ExecStartPre在开始该过程之前会更改目录。

显然,我想象它systemd会像 shell 脚本一样工作(即使我知道它不是 shell 脚本)。有人可以让我知道我应该做什么吗?甚至可以使用systemd? 谢谢!


编辑:我的系统日志报告错误。(我刚注意到。)

Executable path is not absolute, ignoring: chdir /usr/local 
Run Code Online (Sandbox Code Playgroud)

所以, …

systemd

172
推荐指数
1
解决办法
11万
查看次数

CentOS 6 和 CentOS 7 之间的硬链接权限行为不同

当我尝试创建硬链接时,我在 CentOS 7 中遇到权限错误。在 CentOS 6 中设置相同的权限时,我没有收到错误消息。问题集中在组权限上。我不确定哪个操作系统版本是正确的,哪个是错误的。

让我来说明正在发生的事情。在我当前的工作目录中,我有两个目录:源和目标。一开始,destination 是空的;源包含一个文本文件。

[root@tc-dlx-nba cwd]# ls -l
total 0
drwxrwxrwx. 2 root root  6 Jun 12 14:33 destination
drwxrwxrwx. 2 root root 21 Jun 12 14:33 source
[root@tc-dlx-nba cwd]# ls -l destination/
total 0
[root@tc-dlx-nba cwd]# ls -l source/
total 4
-rw-r--r--. 1 root root 8 Jun 12 14:20 test.txt
[root@tc-dlx-nba cwd]# 
Run Code Online (Sandbox Code Playgroud)

如您所见,两个目录的权限为 777,所有者和组都设置为 root。文本文件的所有者和组也都设置为 root。但是,文本文件的权限对于所有者是可读写的,而对于组是只读的。

当我以 root 身份登录时,在目标目录中创建指向文本文件(在源目录中)的硬链接没有问题。

[root@tc-dlx-nba cwd]# ln source/test.txt destination/
[root@tc-dlx-nba cwd]# ls destination/
test.txt
Run Code Online (Sandbox Code Playgroud)

但是,如果我以其他用户(在本例中为 admin)身份登录,则无法创建链接。我得到:“不允许操作。”

[root@tc-dlx-nba cwd]# rm …
Run Code Online (Sandbox Code Playgroud)

permissions centos hard-link

9
推荐指数
1
解决办法
5268
查看次数

标签 统计

centos ×1

hard-link ×1

permissions ×1

systemd ×1