如何在ruby中使用无限循环崩溃机器?
答案 0 :(得分:7)
单独的无限循环不会导致机器崩溃,除非它获得100%的CPU时间(没有合理的操作系统允许)。
你可以创建一个无限循环,它会占用内存而不会让它被垃圾收集,但这只会使当前进程崩溃。
您可以改为创建进程,以递归方式创建其他进程(a fork bomb)。这将会减慢并最终导致机器崩溃,但任何理智的服务器都会限制用户可以产生的进程数。
答案 1 :(得分:2)
在Linux(或等价物)中,您可以继续打开文件而不关闭它们 - 在某些时候 - 您将开始看到"太多打开的文件"错误 - 这也可能阻碍新网络连接的打开。如果没有检查系统上的打开文件限制并使用默认设置,则会发生这种情况。
您还可以继续在操作系统分区中创建包含大量数据的文件,并填满磁盘空间,最终导致系统无响应。如果您的应用程序创建了太多日志条目而您忘记旋转文件,则会发生这种情况。