Starta Cron från init.d

Diskussion i 'Allmänt' startad av Jaman42, 14 apr 2014.

  1. Jaman42

    Jaman42 Baby Droid Medlem

    Blev medlem:
    6 apr 2014
    Inlägg:
    20
    Mottagna gillanden:
    16

    MINA ENHETER

    Hej,
    Jag har en Radxa Rock som jag kör Android 4.2.2 på, jag försöker få igång cron på den så att jag kan schemalägga lite script.

    Jag har fått igång init.d så att ett script körs vid boot men jag lyckas inte få igång cron. Jag har installerat SSHDroid på enheten så jag kan ansluta till den med putty, om jag gör det och kör
    Kod:
    crond -b -c /data/crontab
    så startar cron och allt fungerar som det skall.

    Men när jag lägger till
    Kod:
    crond -b -c /data/crontab
    i mitt start script startar den inte cron av någon anledning och jag kan inte klura ut varför.

    Såhär ser mitt init.d script ut:
    Kod:
    #!/system/bin/sh
    # Init.d test
    
    if [ -e /data/Test.log ]; then
    rm /data/Test.log
    fi
    
    echo  Init.d is indeed working !!! >> /data/Test.log
    echo "excecuted on $(date +"%d-%m-%Y %r" )" >> /data/Test.log
    
    crond -b -c /data/crontab
    Vad gör jag för fel?
     
  2. svenix

    svenix Android Apprentice Medlem

    Blev medlem:
    29 apr 2011
    Inlägg:
    4 276
    Mottagna gillanden:
    7 000
    Operatör:
    Fello Trippelsurf 54GB
    Telefon:
    Oneplus 8T

    MINA ENHETER

    Operatör:
    Fello Trippelsurf 54GB
    Telefon:
    Oneplus 8T
    Ofta är miljön (environment) väldigt begränsad när init-scripten körs. Path m.m. kan saknas. Prova att lägga till fullständig sökväg till cron-kommandot, typ:
    /usr/sbin/crond -b -c /data/crontab
    eller var nu din crond ligger.
     
  3. Jaman42

    Jaman42 Baby Droid Medlem

    Blev medlem:
    6 apr 2014
    Inlägg:
    20
    Mottagna gillanden:
    16

    MINA ENHETER

    Tack för svaret! När jag läste ditt svar tänkte jag att så måste det vara. Men det fungerade inte heller, men saken är den att om jag kör med fullständig sökväg fungerar det inte genom putty heller, vad innebär det? Hur kan jag felsöka vidare?

    Jag provade:
    Kod:
    /system/xbin/crond -b -c /data/crontab
    och
    Kod:
    /system/xbin/busybox crond -b -c /data/crontab
    Fungerade varken i scriptet eller via putty, dubbelkollade och enbart crond -b -c /data/crontab fungerar fortfarande i putty.

    Kan jag kolla fullständig sökväg till crond genom något kommando?
     
  4. svenix

    svenix Android Apprentice Medlem

    Blev medlem:
    29 apr 2011
    Inlägg:
    4 276
    Mottagna gillanden:
    7 000
    Operatör:
    Fello Trippelsurf 54GB
    Telefon:
    Oneplus 8T

    MINA ENHETER

    Operatör:
    Fello Trippelsurf 54GB
    Telefon:
    Oneplus 8T
  5. Jaman42

    Jaman42 Baby Droid Medlem

    Blev medlem:
    6 apr 2014
    Inlägg:
    20
    Mottagna gillanden:
    16

    MINA ENHETER

    TACK! Det kommandot glömmer jag inte i första taget, spenderade timmar med detta igår.

    Kod:
    /data/data/berserker.android.apps.sshdroid/home/.bin/crond


    Kod:
    /data/data/berserker.android.apps.sshdroid/home/.bin/crond -b -c /data/crontab
    Fungerar!!!
     
  6. svenix

    svenix Android Apprentice Medlem

    Blev medlem:
    29 apr 2011
    Inlägg:
    4 276
    Mottagna gillanden:
    7 000
    Operatör:
    Fello Trippelsurf 54GB
    Telefon:
    Oneplus 8T

    MINA ENHETER

    Operatör:
    Fello Trippelsurf 54GB
    Telefon:
    Oneplus 8T
    Kul att det fungerar! :)
    Ja, den sökvägen var ju inget man hade kunnat gissa... ;)

    Jag har jobbat mycket i Unix men inget i Android, men det var ju kul att lite basic *nix knowledge funkar även i Android (som ju är Linux i botten).
     
  7. Jaman42

    Jaman42 Baby Droid Medlem

    Blev medlem:
    6 apr 2014
    Inlägg:
    20
    Mottagna gillanden:
    16

    MINA ENHETER

    Eftersom det är relaterat tänkte jag fortsätta lite i samma tråd.

    Kod:
    # Mounting root
    busybox mount -o remount,rw rootfs / 2>/dev/null;
    ln -s /system/bin/ /bin 2>/dev/null;
    mkdir -p /var/spool/cron/crontabs 2>/dev/null;
    ln -s /system/etc/cron.d/root /var/spool/cron/crontabs/root 2>/dev/null;
    busybox mount -o remount,ro rootfs / 2>/dev/null;
    När jag remountar filsystemet på min Radxa Rock så försvinner "internal sd card" så jag försöker komma på en workaround.

    Att ange PATH:/system/bin i min cron fil hjälpte inte då den fortfarande försökte leta i /bin som inte finns om jag inte använder koden ovan. Mappar som skapas / försvinner efter omstart, jag har förökt läsa på lite om det och som det verkar så är det på grund av att det är en del av ramdisk.img.

    Kan man i sådana fall inte helt enkelt packa upp ramdisk.img, skapa genvägen /bin till /system/bin och sedan packa ramdisk.img igen? Så den genvägen alltid finns kvar?

    Edit: Det räckte tydligen med att mount / som rw, jag behövde inte mounta om den igen som ro för det var där problemet uppstod. När Android laddas och jag navigerar runt ser jag att länken /bin har skapats men när jag försöker skapa en mapp eller fill i roten så klagar den på att filsystemet är read-only så den löser det själv någonstans efter mitt init.d script är initierat.
     
    Last edited: 25 apr 2014