2015-06-15 2 views
0

Я запускаю сценарий оболочки в init.rc как службу, но он убивал и перезапускался непрерывно.Init.rc: service убил и перезагрузился

служба регистрации в init.rc следующим

service Storelog /system/bin/logwrapper /system/bin/store_log.sh 
user root 
disabled 

и сценарий store_log.sh является

#!bin/sh 
while true 
do 
echo "Updating system log.." 
logcat > /data/system.log & 
sleep 600 
echo "Killing background logcat." 
logpid=$! 
echo "logpid $logpid" 
kill $logpid 
logcat -c 

done 

, и я начинаю это Storelog на некотором триггером как boot_completed

Эта служба начинается , после одного цикла его убили и перезапустили.

Что мне здесь не хватает ??? какое-то разрешение? Любое предложение полезно.

+0

Почему вы используете 'kill $ logpid'? – gladman

+0

Я не хочу, чтобы bee run logcat выполнял фоновый процесс непрерывно, так что он убил этот фоновый процесс и снова начал после некоторого времени – Narrator

ответ

0

согласно этой страницы: http://developer.android.com/tools/help/logcat.html

'-c' опция заставляет LogCat для выхода

однако, к тому времени, то 'убить' уже вышел LogCat.

предложить изменения сценария к: (после непроверенные)

#!bin/sh 
while true 
do 
echo "Updating system log.." 
logcat -d > /data/system.log & 
sleep 600 
done 
+0

Я хочу очистить logcat, который я уже сбросил, и в следующий раз, когда я хочу сбросить новые журналы. Поэтому я использовал logcat -c. В соответствии с указанной выше страницей разработчиков Android. В основном это очистит весь буфер журнала, как основной, системный и т. Д., И убивает процесс, как я знаю. – Narrator

-2

вы можете попробовать добавить ONESHOT тег в службе

служба Storelog/система/бен/logwrapper/системы/бен/store_log. ш

суперпользователя

инвалидов

oneshot

Смежные вопросы