Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 这个蛋糕上的命令是做什么的?_Linux_Bash - Fatal编程技术网

Linux 这个蛋糕上的命令是做什么的?

Linux 这个蛋糕上的命令是做什么的?,linux,bash,Linux,Bash,为了庆祝我作为一名网络开发者的3个月试用期,我准备为办公室做一个终端蛋糕。在我对这个主题的研究中,我看到了这张照片,我想知道这些命令是做什么的 这是一个蛋糕保护命令。此命令无法让Root用户吃蛋糕,因为在此之后,愤怒的用户将调用Root用户,打开故障单,等等:)管道试图以一种相当严厉的方式停止系统上的所有Apache进程 管道: 获取系统上所有进程的列表。(ps axww) 这种方法过于夸张,提供的数据超过了达到预期目的所需的实际数据量,这将在以后引起问题 查找包含httpd的行,这是Apach

为了庆祝我作为一名网络开发者的3个月试用期,我准备为办公室做一个终端蛋糕。在我对这个主题的研究中,我看到了这张照片,我想知道这些命令是做什么的


这是一个蛋糕保护命令。此命令无法让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
    实例,从而中断管道ps默认情况下按PID对其输出进行排序,因此,
    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
    。“无法”应该是“启用”或“禁用”还是其他?