小编Chr*_*jer的帖子

等待 systemd oneshot 服务完成

我正在做一些服务器配置,我需要在安装后运行一个脚本,因为它要求系统功能齐全,包括服务。所以我不能把它放在%post我的 kickstart 文件的部分中。

相反,我创建了一个 systemd 服务,该服务在它所做的最后一件事中将自身禁用。

[Unit]
Description=Prepare the system after installation

[Service]
Type=oneshot
ExecStart=/usr/bin/prepare-system

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

问题是在第一次启动时,我进入了登录提示,甚至可以登录并开始使用系统,而“首次启动脚本”仍在运行。

这给了管理员设置系统的错觉,认为系统已经完成,而实际上并没有。

相反,我希望该服务延迟启动,最好显示一条消息,例如“系统正在准备中,请稍候……”并在那里等待,直到脚本完成。

redhat centos systemd centos7

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

我应该在 Unix 套接字上应用什么 SELinux 类型?

我有一个 Gunicorn 套接字文件:/opt/rtd/gunicorn/run.sock. 我需要 nginx 才能打开这个套接字并写入它。

当我运行时,sesearch --allow -s httpd_t | grep unix_stream_socket我注意到httpd_t被允许连接到httpd_t类型的套接字。但当我尝试应用它时,我得到:

# semanage fcontext -a -t httpd_t "/opt/rtd/gunicorn/run.sock"
ValueError: Type httpd_t is invalid, must be a file or device type
Run Code Online (Sandbox Code Playgroud)

我尝试过从 sesearch 找到的其他类型,例如httpd_sys_script_t甚至乘客_t。相同的结果。

我应该将类型设置为什么?

我希望不必制定额外的政策来允许超出必要的范围。一定有办法允许 httpd_t 从具有 CentOS 7.2 中现有策略的文件套接字中读取数据,对吧?

nginx selinux centos socket centos7

5
推荐指数
0
解决办法
1229
查看次数

标签 统计

centos ×2

centos7 ×2

nginx ×1

redhat ×1

selinux ×1

socket ×1

systemd ×1