Crashplan loads through a Sys-V-Init script in /etc/init.d/crashplan configured by default to start on runlevels 2, 3, 4 and 5. This means Crashplan loads on boot before the user has logged in, and crucially with an encrypted home dir, before the dir has been unencrypted or mounted. This leads to errors in Crashplan log service.0.log like

 Thread-16 com.code42.jna.inotify.JNAInotifyWorker Path  /home/lee/Pictures is not a directory, ignoring

and inotify does not monitor the dirs under home because it thinks they do not exist.

Once logged in, if you clear cache and logs, then restart Crashplan all is good, or if you just manually trigger a verify, this will also search and perform the update, but until you do CrashPlan won't be monitoring those files.

Solution, use /etc/rc.local to trigger the start after the login.

First change the /etc/init.d/crashplan script as

case "$1" in
start)
    while [ ! -e /home/lee/Backup ]; do   # some dir in your home
    sleep 2
    done
    $SCRIPTNAME start
    ;;
stop)
.
.

just to make double sure we are unecrypted before we attempt to start CrashPlan (replace the /home/lee/Backup dir, whose existence we wait for , with one of your own home sub dirs, which you are sure will always exist.

After changing the script:

mv /etc/init.d/crashplan /etc/init.d/crashplan.temp

Then you could just do

update-rc.d crashplan remove

to remove it from all the runlevels and stop sysvinit from loading it at boot. But then Crashplan doesn't get shutdown properly when the system reboots, so perhaps it's best to leave sysvinit handling the killing of crashplan on those levels and further to the previous command also issue:

update-rc.d crashplan stop 20 0 1 6 .

This ensures that sysvinit stops crashplan on system halt (0), recovery/single-user mode (1) (this is tty type thing), reboot (6)

Finally, add the following line to /etc/rc.local :

 /etc/init.d/crashplan start &

this will be executed after user login, when the encrypted home dir should have been mounted and it is safe to do so.

Currently unrated

About Lee

I am a Theoretical Physics PhD graduate now working in the technology sector. I have strong mathematical skills and originally started in heavy-duty scientific computing, but now I work mostly with Python and the Django framework. I am available for hire now, so check out my resume and get in touch.

Comments