diff --git a/lib/file_system/backends/fs_mac.ex b/lib/file_system/backends/fs_mac.ex
index f24ff2a807e8a8d834a141ed130e88365c1fabf1..68a8476a0edbb724f5feb20948eeb348853b6409 100644
--- a/lib/file_system/backends/fs_mac.ex
+++ b/lib/file_system/backends/fs_mac.ex
@@ -36,6 +36,8 @@ defmodule FileSystem.Backends.FSMac do
   use GenServer
   @behaviour FileSystem.Backend
 
+  @default_exec_file "mac_listener"
+
   def bootstrap do
     exec_file = executable_path()
     cond do
@@ -78,7 +80,7 @@ defmodule FileSystem.Backends.FSMac do
   end
 
   defp executable_path do
-    executable_path(:system_env) || executable_path(:config) || executable_path(:priv)
+    executable_path(:system_env) || executable_path(:config) || executable_path(:system_path) || executable_path(:priv)
   end
 
   defp executable_path(:config) do
@@ -95,13 +97,17 @@ defmodule FileSystem.Backends.FSMac do
     System.get_env("FILESYSTEM_FSMAC_EXECUTABLE_FILE")
   end
 
+  defp executable_path(:system_path) do
+    System.find_executable(@default_exec_file)
+  end
+
   defp executable_path(:priv) do
     case :code.priv_dir(:file_system) do
       {:error, _} ->
         Logger.error "`priv` dir for `:file_system` application is not avalible in current runtime, appoint executable file with `config.exs` or `FILESYSTEM_FSMAC_EXECUTABLE_FILE` env."
         nil
       dir when is_list(dir) ->
-        Path.join(dir, "mac_listener")
+        Path.join(dir, @default_exec_file)
     end
   end
 
diff --git a/lib/file_system/backends/fs_windows.ex b/lib/file_system/backends/fs_windows.ex
index 2099b035b092b22b90d651e751f2a1af53b6b074..fbfcadbd1acaa3723cc4eeff159481576827b566 100644
--- a/lib/file_system/backends/fs_windows.ex
+++ b/lib/file_system/backends/fs_windows.ex
@@ -26,6 +26,8 @@ defmodule FileSystem.Backends.FSWindows do
   @behaviour FileSystem.Backend
   @sep_char <<1>>
 
+  @default_exec_file "inotifywait.exe"
+
   def bootstrap do
     exec_file = executable_path()
     if not is_nil(exec_file) and File.exists?(exec_file) do
@@ -45,7 +47,7 @@ defmodule FileSystem.Backends.FSWindows do
   end
 
   defp executable_path do
-    executable_path(:system_env) || executable_path(:config) || executable_path(:priv)
+    executable_path(:system_env) || executable_path(:config) || executable_path(:system_path) || executable_path(:priv)
   end
 
   defp executable_path(:config) do
@@ -62,17 +64,20 @@ defmodule FileSystem.Backends.FSWindows do
     System.get_env("FILESYSTEM_FSMWINDOWS_EXECUTABLE_FILE")
   end
 
+  defp executable_path(:system_path) do
+    System.find_executable(@default_exec_file)
+  end
+
   defp executable_path(:priv) do
     case :code.priv_dir(:file_system) do
       {:error, _} ->
         Logger.error "`priv` dir for `:file_system` application is not avalible in current runtime, appoint executable file with `config.exs` or `FILESYSTEM_FSWINDOWS_EXECUTABLE_FILE` env."
         nil
       dir when is_list(dir) ->
-        Path.join(dir, "inotifywait.exe")
+        Path.join(dir, @default_exec_file)
     end
   end
 
-
   def parse_options(options) do
     case Keyword.pop(options, :dirs) do
       {nil, _} ->