Ensure that the account running the SQL Agent Service is granted logon as a service rights. To ensure this is done properly check it then go into services and under properties of the service account look at the login info, retype the password, and hit ok. If you see the message Logon as a Service Rights have been granted, attempt to restart the service. Other things i have found to be causing this by looking in the SQLAgetn.out log file is that the service is reporting it cant view the status of the eventlog service. Hence not being able to log, so it shuts down immediatly to remedy this i have gone into my gpo for the server and granted the Service account the following permissions on the following services.
Windows Eventlog FC
Distributed Transaction Coordinator FC
Remote Procedure Call(RPC) Locator FC
Remote Procedure Call (RPC) FC
FC(Full Controll)
Also check the following User Rights assignments:
Act as part of OS
Adjust Memory Quotas
Bypass Traverse Checking
Logon as a batch job
Logon as Service
Replace Process Level Token
Adding that service account to those URAs should help start it back up