Created
November 27, 2015 18:43
-
-
Save dossy/334365239ec83b67b746 to your computer and use it in GitHub Desktop.
Running CrashPlan on older Linux
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* $ gcc -Wall -shared -fPIC -o patch_inotify_init1.so patch_inotify_init1.c | |
* | |
* LD_PRELOAD=patch_inotify_init1.so java ... | |
* | |
* [11.27.15 12:43:37.040 ERROR main .service.backup.BackupController] Exception setting up BackupController! , java.lang.UnsatisfiedLinkError: Error looking up function 'inotify_init1': /usr/local/crashplan/jre/bin/java: undefined symbol: inotify_init1 | |
* STACKTRACE:: java.lang.UnsatisfiedLinkError: Error looking up function 'inotify_init1': /usr/local/crashplan/jre/bin/java: undefined symbol: inotify_init1 | |
* at com.sun.jna.Function.<init>(Function.java:208) | |
* at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536) | |
* at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513) | |
* at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499) | |
* at com.sun.jna.Library$Handler.invoke(Library.java:199) | |
* at com.sun.proxy.$Proxy35.inotify_init1(Unknown Source) | |
* at com.code42.jna.LinuxPlatform.inotifyInit1(LinuxPlatform.java:292) | |
* at com.code42.jna.inotify.InotifyManager.start(InotifyManager.java:207) | |
* at com.code42.jna.inotify.JNAInotifyFileWatcherDriver.<init>(JNAInotifyFileWatcherDriver.java:61) | |
* at com.code42.backup.path.BackupSetsManager.initFileWatcherDriver(BackupSetsManager.java:417) | |
* at com.code42.backup.path.BackupSetsManager.setUp(BackupSetsManager.java:153) | |
* at com.code42.backup.BackupManager.setUp(BackupManager.java:141) | |
* at com.backup42.service.backup.BackupController.setUp(BackupController.java:467) | |
* at com.backup42.service.CPService.start(CPService.java:665) | |
* at com.backup42.service.CPService.main(CPService.java:2239) | |
* | |
* [11.27.15 12:43:37.040 INFO main .service.backup.BackupController] BackupController.setup(): EXIT | |
* | |
* If you get "Unable to add watch for path ..., errno: , 28" in service.log.0, then: | |
* | |
* $ echo 1048576 > /proc/sys/fs/inotify/max_user_watches | |
* sysctl.conf: fs.inotify.max_user_watches=1048576 | |
* | |
* bin/CrashPlanEngine: | |
* | |
* nice -n 19 env LD_PRELOAD=$TARGETDIR/patch_inotify_init1.so $JAVACOMMON $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log & | |
*/ | |
#include <stdio.h> | |
#include <sys/inotify.h> | |
int inotify_init1(int flags) | |
{ | |
if (flags != 0) { | |
fprintf(stderr, "inotify_init1(%d) -- BEWARE! Ignoring flags.\n", flags); | |
} | |
return inotify_init(); | |
} |
thanks - this is awesome! (I'm also using QNAP so I have to thank @dynek as well!)
awesome!
finally a working solution.
thank u so much
Awesome, thank you!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Very very smart solution! I went the hard way, cross building a version of glibc that includes inotify_init1 for QNAP devices :-)