Prosty Skrypt w Ruby

Witam

Piszę prosty skrypt monitorujący działanie pewnej usługi w Debianie w języku Ruby.

W instrukcji napisano tak: “Skrypty powinny zwracać na stderr 0 w razie poprawnego uruchomienia się”

Tak więc czy mam napisać w skrypcie przy jego końcu STDERR.print ‘0’, czy nic nie pisać bo pod koniec działania skryptu napisanego w Ruby sam zwraca on wartość 0, czy napisać np exit(0).

Dzięki za pomoc :slight_smile:

W jakiej to instrukcji tak napisano? W sumie to jeśli tak jest napisane to jest to niejednoznaczne. Zapis ‘zwracać na stderr’ sugeruje że faktycznie to powinno być STDERR.print ‘0’, ale zwykle zwraca się to przez wartość wyjścia, czyli exit(0). Musisz sprawdzić to sam :).

Jeśli skrpyt zakończył się poprawnie nic nie musisz pisać, domyślnie jest zwracane 0 (chyba, że zostanie wyrzucony wyjątek). Jeśli chcesz zasygnalizować błąd to napisz: exit(1), lub exit z dowolną inną wartością różną od zera.

Hej

zrobiłem na końcu wszędzie exit(0), myślę że o to chodziło.

Dzięki za pomoc :slight_smile:

Nie myśl tylko zapytaj.
Prawda to, że zazwyczaj wszystkie programy zwracają (jako kod wyjścia) wartość zero, ale w tym wypadku w wymogach dostałeś “zwracać na stderr”, a to znaczy już co innego.
Myślę, że powinieneś jednak wypisać zero. Zwrócić też możesz, bo nikt tego nie zabronił.

Wymóg wypisania (czyli wyświetlenia) ma sens, bo np. ten skrypt może być użyty w sposób, który nie pozwala na sprawdzenie kodu powrotu, za to pozwala przechwycić stderr.