diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-06-02 19:50:40 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-06-04 21:44:21 +0200 |
commit | 255e8baa916f9103dc703447474ca38ba118abe8 (patch) | |
tree | 3cd01833b36a6df6309bcfefee117b91d0992cc7 /src/Process.hs | |
parent | 23a5528e2b5a6008b3572a172e5f1671a13d28b8 (diff) |
Diffstat (limited to 'src/Process.hs')
-rw-r--r-- | src/Process.hs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/Process.hs b/src/Process.hs index 290aedf..61a9fe8 100644 --- a/src/Process.hs +++ b/src/Process.hs @@ -93,7 +93,7 @@ lineReadingLoop process h act = spawnOn :: Either Network Node -> ProcName -> Maybe Signal -> String -> TestRun Process spawnOn target pname killWith cmd = do -- When executing command given with relative path, turn it to absolute one, - -- because working directory will be changed for the "ip netns exec" wrapper. + -- because working directory will be changed for the shell wrapper. cmd' <- liftIO $ do case span (/= ' ') cmd of ( path, rest ) @@ -104,13 +104,13 @@ spawnOn target pname killWith cmd = do _ -> return cmd let netns = either getNetns getNetns target - let prefix = T.unpack $ "ip netns exec \"" <> textNetnsName netns <> "\" " currentEnv <- liftIO $ getEnvironment - (Just hin, Just hout, Just herr, handle) <- liftIO $ createProcess (shell $ prefix ++ cmd') - { std_in = CreatePipe, std_out = CreatePipe, std_err = CreatePipe - , cwd = Just (either netDir nodeDir target) - , env = Just $ ( "EREBOS_DIR", "." ) : currentEnv - } + (Just hin, Just hout, Just herr, handle) <- liftIO $ do + runInNetworkNamespace netns $ createProcess (shell cmd') + { std_in = CreatePipe, std_out = CreatePipe, std_err = CreatePipe + , cwd = Just (either netDir nodeDir target) + , env = Just $ ( "EREBOS_DIR", "." ) : currentEnv + } pout <- liftIO $ newTVarIO [] let process = Process |