zip -r public_html.zip public_html/ run job in background

To run that ZIP operation in the background and keep it running after SSH disconnects:

nohup zip -r public_html.zip public_html/ > zip.log 2>&1 &

Check whether it is still running

ps aux | grep '[z]ip -r'

Watch the log

tail -f zip.log

Check the ZIP size

ls -lh public_html.zip

When finished, you can verify the archive:

unzip -t public_html.zip

If public_html.zip already exists and you want to replace it, remove it first:

rm -f public_html.zip
nohup zip -r public_html.zip public_html/ > zip.log 2>&1 &