- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Arch Linux。我读过有关 systemd 的信息,据我了解,systemd
是第一个进程,它启动其余进程。但是当我使用时:
ps -aux
结果显示 /sbin/init
的 PID 为 1。当我使用时:
pstree -Apn
结果显示 systemd
的 PID 为 1。哪个是正确的? /sbin/init
是否正在启动 systemd
?
最佳答案
他们可能都是对的。
$ sudo ls -ltrh /proc/1/exe
[sudo] password for user:
lrwxrwxrwx 1 root root 0 May 30 21:22 /proc/1/exe -> /lib/systemd/systemd
$ echo $(tr '\0' ' ' < /proc/1/cmdline )
/sbin/init splash
$ stat /sbin/init
File: '/sbin/init' -> '/lib/systemd/systemd'
Size: 20 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 527481 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-05-30 21:27:12.058023583 -0500
Modify: 2016-10-26 08:04:58.000000000 -0500
Change: 2016-11-19 11:38:45.749226284 -0600
Birth: -
上面的命令告诉我们:
exec()
)?在我的系统上,/sbin/init 是“/lib/systemd/systemd
”的符号链接(symbolic link)。这可能与您的系统相似。我们可以通过 strace
查看 ps -aux
使用的信息。
$ strace ps -aux
...
open("/proc/1/cmdline", O_RDONLY) = 6
read(6, "/sbin/init\0splash\0", 131072) = 18
read(6, "", 131054) = 0
close(6) = 0
...
对于 pstree
也是如此:
$ strace pstree -Apn
...
getdents(3, /* 332 entries */, 32768) = 8464
open("/proc/1/stat", O_RDONLY) = 4
stat("/proc/1", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
fstat(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(4, "1 (systemd) S 0 1 1 0 -1 4194560"..., 8192) = 192
read(4, "", 7168) = 0
open("/proc/1/task", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
...
所以输出的不同是因为他们使用了不同的信息源。 /proc/1/cmdline
告诉我们进程是如何被调用的。而 /proc/1/stat
显示进程的名称是 systemd
。
$ cat /proc/1/stat
1 (systemd) S 0 1 1 0 -1 4194560 34371 596544 1358 3416 231 144 298 1758 20 0 1 0 4 190287872 772 18446744073709551615 1 1 0 0 0 0 671173123 4096 1260 0 0 0 17 2 0 0 12188 0 0 0 0 0 0 0 0 0 0
关于linux - 哪个是PID1 :/sbin/init or systemd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274648/
在 shell 中运行命令时(例如 sudo apt-get install aptitude),输出如下: dpkg: warning: 'ldconfig' not found in PATH o
在linux下我们经常用到的四个应用程序的目录是:/bin、/sbin、/usr/bin、/usr/sbin bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp
我已经在 phpinfo 文件中的实时服务器(Linux basd LAMP)上上传了我的 joomla 项目,我发现了 "/usr/sbin/sendmail -t -i"用于 smtp 配置。和我
大多数使用 Autotools 的包都是用户级实用程序或至少足够高的级别完全在 /usr 下,或者足够低到完全在 /usr 下。 我正在编写一个包,需要将一些文件安装到 /bin,一些安装到 /sbi
This is everything that I've done: I wrote the rc.d/ script, it looks like this:这就是我所做的一切:我写了rc.d
在内核加载完毕,并完成硬件检测与驱动程序加载后,此时主机硬件已经准备完毕,内核会主动呼叫第一个进程,也就是 /sbin/init,此配置文件最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设
出于安全原因,我正在运行 CentOS 5 并禁用了 root 登录。 现在,作为 root 我可以像这样启动和停止服务: httpd restart mysqld stop postfix star
我正在尝试安装 discount在我的 VPS它基于 Solaris 并且在设置一些环境变量后编译效果很好,但是 install fails . 所以我想我会手动安装,但是 install 是什么?真
我有一个docker容器,需要使用-d标志作为守护进程运行。 有没有办法指定我要运行/ usr / sbin / sshd作为此容器的启动过程? 我已经尝试过了,但是我的容器没有停留在周围: 须藤 j
我正在尝试构建我的应用程序。 它以前曾经工作过,但是现在我收到了我不知道的错误消息。 chown: MYDOMAIN\domain users: Invalid argument Command /u
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
本地 Rail 应用程序运行良好,但在 VPS 服务器上,当我尝试通过 Rails 应用程序发送包含所有正确设置的电子邮件时,我在日志中收到此错误: sh: 1: /usr/sbin/sendmail
我正在使用 Arch Linux。我读过有关 systemd 的信息,据我了解,systemd 是第一个进程,它启动其余进程。但是当我使用时: ps -aux 结果显示 /sbin/init 的 PI
我正在编写基本上是许多平台上安装程序服务的前端。我(显然)想知道的一件事是安装是否成功。在大多数平台上,这很简单:只需检查安装程序的返回代码/退出代码即可。但是,在 Mac 上却不是那么容易(使用 /
Closed. This question does not meet Stack Overflow guidelines。它目前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
为什么? 我可以在 PHP 中通过 mail() 发送,但我不能使用 IsSendmail() 通过 PHPMailer 发送 最佳答案 你确定路径/usr/sbin/sendmail是正确的? 如果
我已经启动了must(./sbin/start-dfs.sh) jps 3098 Jps 2492 NameNode 2700 SecondaryNameNode hadoop-datanode
这个问题不是“/bin/sh: 1: “apache2ctl”,: not found” in docker的重复 这是我在ubuntu操作系统中用于laravel框架的简单docker文件。 ver
我有一个应用程序可以调用 HPUX resetpw 命令。它在 Linux 中不存在。我可以从我的代码中引用具有类似功能的另一个命令吗? 最佳答案 如果'resetpw' 确实像它听起来的那样,您可能
通过程序在 Debian 上启动服务的最佳方式是什么?我曾经使用'/sbin/service start',但我最近遇到一个系统,其中'/sbin/service'不存在,所以启动守护进程会失败。 最
我是一名优秀的程序员,十分优秀!