On Windows, it is possible to load mods by passing the absolute path where the mod is located. For example:
.\DayZServer_x64.exe -mod=P:\MyLocalMod ...
This also works for server-side mods:
.\DayZServer_x64.exe -servermod=P:\MyLocalMod ...
This is very useful for testing local builds of mods before publishing them to the workshop and for when you configure SteamCMD to install mods in a non-standard location.
On Linux, passing absolute paths to the -mod= and -servermod= parameters results in the mods not getting loaded. It appears as though DayZ Server is treating absolute paths as if they are relative paths and appending them onto the end of the current directory. For example, when I run the command:
strace -o trace.txt ./DayZServer -config=serverDZ.cfg -profile=/home/steam/dayz/profile -mod=/home/steam/dayz/mods/@CF ^^^^^^^^^^^^^^^^^^^^^^^^^
The @CF mod does not get loaded. When I grep the resulting strace for @CF, I see:
$ grep "@CF" trace.txt execve("./DayZServer", ["./DayZServer", "-config=serverDZ.cfg", "-profile=/home/steam/dayz/profil"..., "-mod=/home/steam/dayz/mods/@CF"], 0x7ffd1a338a58 /* 29 vars */) = 0 access("/home/steam/dayz/mods/@CF", R_OK|W_OK) = 0 access("/home/steam/.steam/steamapps/common/DayZ Server Exp//home/steam/dayz/mods/@CF", R_OK|W_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/home/steam/dayz/mods/@CF/Anims/cfg/skeletons.anim.xml", O_RDONLY) = -1 ENOENT (No such file or directory)
However, if I copy the @CF directory into my DayZ Server Exp installation directory and run the command:
strace -o trace.txt ./DayZServer -config=serverDZ.cfg -profile=/home/steam/dayz/profile -mod=@CF ^^^
Because the server treats @CF as a relative directory, it actually tries to load the mod and the resulting strace contains many more matches:
$ grep "@CF" trace.txt execve("./DayZServer", ["./DayZServer", "-config=serverDZ.cfg", "-profile=/home/steam/dayz/profil"..., "-mod=@CF"], 0x7ffef5c0e868 /* 29 vars */) = 0 access("@CF", R_OK|W_OK) = 0 access("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF", R_OK|W_OK) = 0 openat(AT_FDCWD, "/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/dta", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/addons", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/mpmissions", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 132 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/mod.cpp", {st_mode=S_IFREG|0775, st_size=551, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/mod.cpp", {st_mode=S_IFREG|0775, st_size=551, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/meta.cpp", {st_mode=S_IFREG|0775, st_size=90, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/meta.cpp", {st_mode=S_IFREG|0775, st_size=90, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Keys", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Keys", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 openat(AT_FDCWD, "/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 133 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/GUI.pbo", {st_mode=S_IFREG|0775, st_size=36731, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/GUI.pbo", {st_mode=S_IFREG|0775, st_size=36731, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Defines.pbo", {st_mode=S_IFREG|0775, st_size=376, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Defines.pbo", {st_mode=S_IFREG|0775, st_size=376, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/XML.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/XML.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/XML.pbo", {st_mode=S_IFREG|0775, st_size=6498, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/XML.pbo", {st_mode=S_IFREG|0775, st_size=6498, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Defines.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Defines.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Scripts.pbo", {st_mode=S_IFREG|0775, st_size=63050, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Scripts.pbo", {st_mode=S_IFREG|0775, st_size=63050, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/GUI.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/GUI.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Legacy.pbo", {st_mode=S_IFREG|0775, st_size=274, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Legacy.pbo", {st_mode=S_IFREG|0775, st_size=274, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Scripts.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Scripts.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Legacy.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0 stat("/home/steam/.steam/steamapps/common/DayZ Server Exp/@CF/Addons/Legacy.pbo.Jacob_Mango_V3.bisign", {st_mode=S_IFREG|0775, st_size=567, ...}) = 0