His portfolio reflects years consumed with trekking the globe, but photographer Jauder Ho only rediscovered his love for the art several years ago. Taking advantage of an opportunity for a vacation for the first time in over a decade, Jauder Ho ended up taking a trip to Japan including a trek up Mount Fuji. That followed by the road trip of a lifetime driving across the States had a profound effect on how he perceives the world. Since then, Jauder Ho has seen the world shot by shot, each one serving as a reminder of changing moments in time. In his portfolio, Jauder Ho juxtaposes long exposure shots of beautiful scenery with pictures focused on details that explain more to the story. Jauder Ho strives to take portraits that describe the feelings of his subjects and reflect his ability to arouse emotions from the viewer. Combining skills acquired from continual photography with what it takes to see life on stills, Jauder Ho has created a body of work that reflects the world both great and small. Here, Jauder Ho brings you selected content from his personal collection as well as sharing interesting items found from the Internet. Identica

Restart nginx with zero downtime

Typically, when you upgrade, there is usually a short downtime while the application is restarted.

However, nginx has come up with an elegant way of upgrading without any downtime by using different signals to manage the master and worker processes. The process is outlined on the nginx wiki.

Essentially, the upgrade happens in the following steps:

  1. Send USR2 signal to the existing master process
  2. This starts up a new master process and renames the pid file for the old process to nginx.pid.oldbin
  3. Send QUIT signal to old master process to shut down master & worker processes

Since the default nginx init script does not account for this, I have added an “upgrade” option to the init file.

Note: Recent versions of the development branch now have a -s switch that can be used to pass signals.

UPDATE: Switched the init file to using kill directly instead of start-stop-daemon as it was generating errors.