是否有一种简单的方法可以找出正在使用的 initsystem,例如最近的系统Debian wheezy
或Fedora
系统正在使用哪个 initsystem ?我知道Fedora 21
使用systemd
initsystem 但那是因为我读过它并且因为所有相关的脚本/符号链接都存储在/etc/systemd/
. 但是,我不确定例如Debian squeeze
或CentOS 6 or 7
等等。
有哪些技术可以验证这种初始化系统?
任何人都可以详细解释以下内容。让我们假设我正在安装一个带有noexec
选项的目录,如下所示:
mount -o noexec /dev/mapper/fedora-data /data
Run Code Online (Sandbox Code Playgroud)
所以为了验证这一点,我跑了mount | grep data
:
/dev/mapper/fedora-data on /data type ext4 (rw,noexec,relatime,seclabel,data=ordered)
Run Code Online (Sandbox Code Playgroud)
现在/data
我正在创建一个简单的脚本hello_world
,如下所示:
#!/bin/bash
echo "Hello World"
whoami
Run Code Online (Sandbox Code Playgroud)
因此,我使脚本可执行chmod u+x hello_world
(但这对带有noexec
选项的文件系统没有影响)并尝试运行它:
# ./hello_world
-bash: ./hello_world: Permission denied
Run Code Online (Sandbox Code Playgroud)
但是,准备bash
文件会产生:
# bash hello_world
Hello World
root
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个简单hello_world.c
的内容如下:
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译它使用 cc -o hello_world hello_world.c
现在运行:
# ./hello_world
-bash: ./hello_world: Permission denied
Run Code Online (Sandbox Code Playgroud)
所以我尝试使用它来运行它
/lib64/ld-linux-x86-64.so.2 hello_world …
Run Code Online (Sandbox Code Playgroud) 我已经设置了一个 Django 项目来与 uwsgi 和 nginx 一起运行,并且一切都按预期运行,只是当我重新启动时,uwsgi 将无法正确启动,直到在 fs 上重新创建 /run/ 文件夹。/run 映射到 'tmpfs',因此需要在每次启动时重新创建。
我有一个为 uwsgi 创建的 systemd 服务文件:
[Unit]
Description=uWSGI Module
After=syslog.target
[Service]
ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi.ini
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=main
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
该/etc/uwsgi.ini
文件如下所示:
[uwsgi]
uid = uwsgi
gid = uwsgi
pidfile = /run/uwsgi/uwsgi.pid
stats = /run/uwsgi/stats.sock
socket = /run/uwsgi/uwsgi.sock
master = true
processes = 1
chdir = /path/to/our/django/app
module = icscada
max-requests = 100
daemonize = /var/log/uwsgi.log
Run Code Online (Sandbox Code Playgroud)
/run/uwsgi
在每次启动时重新创建文件夹的推荐方法是什么?