fedora中reboot的一个奇怪现象
运行下面两个操作1 在终端中运行"which reboot shutdown"
发现这两个命令的二进制文件为/usr/sbin/reboot和/usr/sbin/shutdown。
2 接着用ls -l /usr/sbin/reboot /usr/sbin/shutdown
发现二者为符号连接,连接的是同一个二进制文件/usr/bin/systemctl。
现在问题来了,既然reboot和shutdown连接的同一个文件,为什么运行时却有不一样的输出和功能。
例如,在终端运行reboot --help,shutdown --help,systemctl --help这三个命令却有着不一样的输出,
且运行reboot,shutdown,systemclt也有着不一样的功能。
求大神解释啊!
注:系统为fedora20 64bit 这些命令后面是可以带一些参数的,谷歌搜一下 狂热粉丝 发表于 2014-01-08 21:58 static/image/common/back.gif
这些命令后面是可以带一些参数的,谷歌搜一下
这个我知道。可是问题是按照符号连接的意思,我在终端输入reboot或shutdown(都不带任何参数),应该等于在终端直接输入systemctl,所以结果应该是一样的,可输出的结果却完全不一样啊?联他们的帮助信息都不一样(通过 cmd --help)。难道符号连接本身已经携带了参数了吗? 不一样的.
每一个 命令都有一个 ARGV 的参数, 也就是命令本身.
通常我们都不会去使用这个参数. 但在很多的系统命令里, 这个参数是用的.
我没看过 systemctl 的代码, 但可以猜一下 :mrgreen:if (ARGV == 'shudown') {
shutdown()
} elseif (ARGV == 'reboot') {
reboot()
} else {
usage()
} /usr/bin/systemctl看这个的源码。 q1208c 发表于 2014-01-09 08:44 static/image/common/back.gif
不一样的.
每一个 命令都有一个 ARGV 的参数, 也就是命令本身.
的确如此,已经测试,shell在执行进程时传递的argv,确实是连接名!多谢!
页:
[1]