How do exchange sites know all user deposit transactions? If they use transaction/wallet listener, how do they detect deposit transactions when their services are not running, do they fetch blocks at every height to scan for deposits to avoid any missing?
Thanks,
They're running full-node implementation. 


  how do they detect deposit transactions when their services are not
  running?


It's blockchain, all data available for anyone, they able to fetch data from blockchain anytime.


  do they fetch blocks at every height to scan for deposits to avoid any
  missing?


There is a couple ways to get address deposits:


You can check the balance of particular address every N seconds.
You can parse a block and check if there are transactions related to particular address.