Basically you got two possibilities and normally the first one should help you finding already the reason for the crash without coding anything since the logcat should show up the error occurred that led to the service end.
1) Using the logcat command
Having Log.i("your tag", "output text")
you can intercept those messages using the Android Eclipse plugin or by calling adb logcat
from your command line, having your Android device connected and your service running.
See also http://developer.android.com/guide/developing/tools/adb.html#logat
2) Writing to stdout
Using the System.out.println("...")
command you can configure your device to write the stdout into a file:
adb shell stop
adb shell setprop log.redirect-stdio true
adb shell start
See also http://developer.android.com/guide/developing/tools/adb.html#stdout
Obviously you have to spread a lot of debug output messages over your application, mainly at the critical points.
Good luck for finding the error!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…