Zatrzymaj wykonywanie skryptu Ruby

103

Czy istnieje metoda, taka jak exitlub diew PHP, która zatrzymuje wykonywanie skryptu Ruby?

adaxa
źródło

Odpowiedzi:

103

Albo abortczy exitpomoże.

Icid
źródło
3
Jak @webwurst mówi w drugiej odpowiedzi, użyj abort, aby określić nieudane zakończenie skryptu i zakończ, aby zakończyć pomyślnie.
Jrgns
85

abortjest aliasem, Kernel.exit(false)którego wykonanie natychmiast kończy wykonywanie.

exitjest aliasem Kernel.exit(true)i zgłasza SystemExitwyjątek, który może zostać przechwycony. at_exitDziała również i finalizerssą uruchamiane przed zakończeniem.

webwurst
źródło
7

abortnadal może się zawiesić, jeśli są wątki, które oczekują. Jeśli naprawdę chcesz natychmiast zakończyć działanie, spróbuj:

Process.kill 9, Process.pid
pguardiario
źródło
0

FYI dla ruby ​​on rails, możesz po prostu użyć tego klejnotu shutup, w katalogu rails uruchom to polecenie w terminalu bash

gem install shutup

znajdzie PID serwera rails i go zabije.

a także możesz to zrobić lsof -wi tcp:3000na wypadek, gdybyś nie uruchomił serwera na innym porcie, w przeciwnym razie powinieneś zmienić port3000

m1 e1r0r
źródło