The silent push will not wake up the application if it was killed from the app switcher by the user.
I hope you didn't forget to set the background mode in the info plist.
UIKit Framework Reference:
Use this method to process incoming remote notifications for your app. Unlike the
application:didReceiveRemoteNotification:
method, which is called only when your app is running in the foreground, the system calls this method when your app is running in the foreground or background. In addition, if you enabled the remote notifications background mode, the system launches your app (or wakes it from the suspended state) and puts it in the background state when a push notification arrives.
However, the system does not automatically launch your app if the user has force-quit it. In that situation, the user must relaunch your app or restart the device before the system attempts to launch your app automatically again.