# Signalling failures You can actively signal a failure to SITE_NAME by slightly changing the ping URL: append either `/fail` or `/{exit-status}` to your normal ping URL. The exit status should be a 0-255 integer. SITE_NAME will interpret exit status 0 as success, and all non-zero values as failures. Examples: ```bash # Reports failure by appending the /fail suffix: curl --retry 3 PING_URL/fail # Reports failure by appending a non-zero exit status: curl --retry 3 PING_URL/1 ``` By actively signalling failures to SITE_NAME, you can minimize the delay from your monitored service encountering a problem to you getting notified about it. ## Shell Scripts The below shell script appends `$?` (a special variable which contains the exit status of the last executed command) to the ping URL: ```bash #!/bin/sh /usr/bin/certbot renew curl --retry 3 PING_URL/$? ``` ## Python Below is a skeleton code example in Python which signals a failure when the work function returns an unexpected value or throws an exception: ```python import requests URL = "PING_URL" def do_work(): # Do your number crunching, backup dumping, newsletter sending work here. # Return a truthy value on success. # Return a falsy value or throw an exception on failure. return True success = False try: success = do_work() finally: # On success, requests PING_URL # On failure, requests PING_URL/fail requests.get(URL if success else URL + "/fail") ```