为了庆祝我的3个月试用期作为网站开发者的结论,我将为办公室做一个终端蛋糕。在我对这个主题的研究中,我遇到了这张照片,并想知道这些命令的作用?这个蛋糕上的命令是做什么的?
回答
这条管道将尝试停止所有Apache进程的系统上,在一个相当沉重增值Rube Goldbergian时尚。
管道:
获取系统中的所有进程的列表。(
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
在Linux上的排序输出的PID默认情况下,这样以来PIDs wrap around,grep
可能实际上没有任何效果可言httpd
之前出现,导致蛋糕命令。使用
xargs
上运行发现每行kill -9
。也就是说,它建立这样的命令并运行它们:
kill -9 17652 ? Ss 0:00 /usr/bin/httpd -blah -args
这可能是也可能不是你想要什么。它有时可工作,因为进程ID(PID)是上线的第一件事,当你运行
ps
与axww
标志。 (还有其他的方式来运行ps
地方就行的第一件事情是别的东西。)蛋糕装饰者希望系统上的kill
的实现不会在ps
输出行上的PID之后得到所有其他垃圾时被禁止。POSIX doesn't say
kill(1)
什么是非PID参数。它可以停止在第一个非数字参数,它可以给它找到的每个这样的参数给出错误,或者它可以默默地忽略它们。如果ps
找到的那一行碰巧包含有效的PID数字,那么该命令可能会终止您不想要的进程。
这将是好了很多,在这里使用pgrep
,如果可用:
# pgrep httpd | xargs kill -9
不仅是命令短,它确实你真正想要的,可靠的。它不匹配,然后筛选出grep
进程,它只匹配进程名称,并且不会将非PID垃圾传递到kill
。
系统的pgrep
往往也有命令pkill
,它封装了该管道成一个单一的命令:
# pkill httpd
您可以添加这里如果你要强行终止httpd
过程,但我会离开它从这里开始。我已经命令这些命令越来越歧视,所以如果你愿意的话,让它们变得越来越残酷也是有意义的。
如果您的系统没有pgrep
或pkill
,它可能有pidof
:
# kill $(pidof httpd)
另一种方法是使用killall
:
# killall httpd
当心,该killall
命令可以做something different在非Linux操作系统上。
然而,最安全的方法是使用你的操作系统正常的“停止web服务器”命令。例子:
# service httpd stop
# /etc/init.d/httpd stop
# systemctl stop httpd.service
# launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist
阿帕奇包括 “停止Apache很好” 命令:
# apachectl stop
该命令将只停止Apache的正确,但是。以上操作系统特定的命令也可以执行其他清理操作。如果Apache是由操作系统启动的,则应该使用操作系统自己的命令来停止它。
这是一个蛋糕保护命令。此命令unables根吃蛋糕,因为在此之后愤怒的用户,将调用根,打开故障单,等等:)
应该'不能'启用'或'禁用'或其他? –
- 1. 这个sed命令是做什么的?
- 2. 这个命令做什么?
- 3. 什么是我的表在蛋糕php
- 4. 这个命令实际上是做什么的?这是对的吗?
- 5. 这个shell命令做了什么?
- 6. PHP这个shell命令做什么?
- 7. 做这个命令的更类似Ruby的方式是什么?
- 8. robots.txt中的这个命令是做什么的?
- 9. 这个命令是做什么的? “exec bash -l”
- 10. 这个cat/tr/perl命令管道是做什么的?
- 11. 这个“git reset”命令是做什么的?
- 12. 这是什么CVS命令在做什么?
- 13. arg1命令是做什么的?
- 14. `twine upload dist/*`命令是做什么的?
- 15. netbeans上的蛋糕php
- 16. 的document.getElementsByTagNameNS命令做什么
- 17. 这些Git命令做什么?
- 18. 这个unix命令是什么意思?
- 19. PowerShell命令 - 这个输出是什么?
- 20. 这个gcc命令是什么意思?
- 21. 这个PHP命令是什么?
- 22. 这个命令是什么意思?
- 23. 这个:在这个git命令的结尾是什么意思?
- 24. 为什么在SQLite上这个插入命令什么都不做?
- 25. sed命令上的-itmp标志是做什么的?
- 26. 这个ffmpeg命令中倒数第二个参数是做什么的?
- 27. 联想蛋糕这里有什么问题php
- 28. 得到这样的错误蛋糕php
- 29. 迁移蛋糕1.3〜2.0蛋糕
- 30. 类::蛋糕时间模型蛋糕PHP
他们应该停止机器上的任何'httpd'(web服务器)进程。但是命令被破坏了。 : - \ –
那么,传递给'kill -9'的值将不仅仅包含进程标识符,除非它们中的一些恰好是有效的PID,否则它只会打印一堆错误消息并终止进程。 (但是在我的系统上,我运行Apache的时候,Web服务器进程被命名为'apache2',而不是'httpd'。) –
谢谢,我的好奇心已经满了!我猜想它可能是这方面的一些东西。 – okeegan