Linux 这个蛋糕上的命令是做什么的?
为了庆祝我作为一名网络开发者的3个月试用期,我准备为办公室做一个终端蛋糕。在我对这个主题的研究中,我看到了这张照片,我想知道这些命令是做什么的Linux 这个蛋糕上的命令是做什么的?,linux,bash,Linux,Bash,为了庆祝我作为一名网络开发者的3个月试用期,我准备为办公室做一个终端蛋糕。在我对这个主题的研究中,我看到了这张照片,我想知道这些命令是做什么的 这是一个蛋糕保护命令。此命令无法让Root用户吃蛋糕,因为在此之后,愤怒的用户将调用Root用户,打开故障单,等等:)管道试图以一种相当严厉的方式停止系统上的所有Apache进程 管道: 获取系统上所有进程的列表。(ps axww) 这种方法过于夸张,提供的数据超过了达到预期目的所需的实际数据量,这将在以后引起问题 查找包含httpd的行,这是Apach
这是一个蛋糕保护命令。此命令无法让Root用户吃蛋糕,因为在此之后,愤怒的用户将调用Root用户,打开故障单,等等:)管道试图以一种相当严厉的方式停止系统上的所有Apache进程 管道:
ps axww
)
这种方法过于夸张,提供的数据超过了达到预期目的所需的实际数据量,这将在以后引起问题httpd
的行,这是Apache web服务器的常用进程名。它可能会意外地匹配其他东西,但在一台本应只是web服务器的机器上,它是相当安全的
在这个阶段,你会看到这样的台词:
17652?Ss 0:00/usr/bin/httpd-blah-args
管道也将匹配一个vi/etc/httpd/conf.d/mime.conf
命令grep
(grep-v grep
)的行,因为第一个grep
也会发现自己:
24180 pts/0 R+0:00 grep httpd
如果不过滤掉这一行,就有可能在管道完成之前杀死第一个grep
实例,从而中断管道grep
可能出现在httpd
之前,导致cake命令实际上根本没有任何效果kill-9
也就是说,它构建如下命令并运行它们:
kill-917652?Ss 0:00/usr/bin/httpd-blah-args
这可能会也可能不会满足您的要求。它有时可以工作,因为当您使用axww
标志运行ps
时,进程ID(PID)是行中的第一件事。(还有其他运行ps
的方法,其中行上的第一件事是其他东西。)蛋糕装饰师希望系统上的kill
实现不会在ps
输出行上的PID之后出现所有其他垃圾时呕吐
kill(1)
对非PID参数的作用。它可以在第一个非数值参数处停止,它可以为找到的每个此类参数提供错误,或者它可以默默地忽略它们。如果由ps
找到的行碰巧包含有效的PID数字,那么蛋糕上的命令可能会终止您不希望它终止的进程#pgrep httpd | xargs kill-9
命令不仅更短,而且可以可靠地执行您实际需要的操作。它不匹配然后过滤掉grep
进程,它只匹配进程名,并且不会将非PID垃圾传递给kill
带有pgrep
的系统通常还具有命令pkill
,该命令将该管道封装为单个命令:
pkill httpd
如果需要,您可以在此处添加-9
以强制终止httpd
进程,但从这里开始我将不再使用它。我已经命令这些命令越来越有区别,所以如果你愿意的话,让它们变得越来越残忍也是有道理的
如果您的系统没有pgrep
或pkill
,则可能有:
#kill$(皮多夫httpd)
另一种方法是使用:
#killall httpd
注意,killall
命令可能在非Linux操作系统上执行
不过,最安全的方法是使用操作系统的正常“停止web服务器”命令。示例:
#服务httpd停止
#/etc/init.d/httpd停止
#systemctl停止httpd.service
#launchctl unload/System/Library/LaunchDaemons/org.apache.httpd.plist
Apache包含一个“stop Apache”命令:
#apachectl停止
但是,该命令只会正确地停止Apache。上述特定于操作系统的命令也可以执行其他清理操作。如果Apache是由操作系统启动的,您也应该使用操作系统自己的命令来停止它。他们应该停止机器上的任何
httpd
(web服务器)进程。但是命令被破坏了-\嗯,传递给kill-9的值将不仅仅包括进程ID,但除非其中一些恰好是有效的PID,否则它只会打印一堆错误消息并终止进程。(但在我运行Apache的系统上,web服务器进程的名称是apache2
,而不是httpd
)谢谢这两个,我的好奇心已经满足了!我猜可能是这样的。好奇。主机名是“sigint”,但信号是SIGKILL。或者正确执行此操作并使用pgrep
/pkill
。“无法”应该是“启用”或“禁用”还是其他?