core: Add ExecSearchPath parameter to specify the directory relative to which binaries executed by Exec*= should be found
Currently there does not exist a way to specify a path relative to which all binaries executed by Exec should be found. The only way is to specify the absolute path. This change implements the functionality to specify a path relative to which binaries executed by Exec*= can be found. Closes #6308
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$PATH" = "/usr" && test "$$VAR1" = word3 && test "$$VAR2" = "\\$$word 5 6"'
|
||||
Type=oneshot
|
||||
ExecSearchPath=/tmp:/bin
|
||||
Environment="PATH=/usr" VAR1=word3 "VAR2=$word 5 6"
|
||||
@@ -0,0 +1,5 @@
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6" && test "$$PATH" = "/tmp:/bin"'
|
||||
Type=oneshot
|
||||
ExecSearchPath=/tmp:/bin
|
||||
Environment="VAR1=word1 word2" VAR2=word3 "VAR3=$word 5 6"
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for ExecSearchPath with EnvironmentFile where EnvironmentFile sets PATH
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6" && test "$$VAR4" = "new\nline" && test "$$VAR5" = passwordwithbackslashes && test "$$PATH" = /usr'
|
||||
Type=oneshot
|
||||
EnvironmentFile=/tmp/test-exec_execsearchpath_environmentfile-set.conf
|
||||
ExecSearchPath=/tmp:/bin
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for ExecSearchPath with EnvironmentFile where EnvironmentFile does not set PATH
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6" && test "$$VAR4" = "new\nline" && test "$$VAR5" = passwordwithbackslashes && test "$$PATH" = "/tmp:/bin"'
|
||||
Type=oneshot
|
||||
ExecSearchPath=/tmp:/bin
|
||||
EnvironmentFile=/tmp/test-exec_execsearchpath_environmentfile.conf
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for PassEnvironment with ExecSearchPath with PATH set by user
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6" && test "$$VAR4" = "new\nline" && test "$$VAR5" = passwordwithbackslashes && test "$$PATH" = "/usr"'
|
||||
Type=oneshot
|
||||
PassEnvironment=VAR1 VAR2 VAR3 VAR4 VAR5 PATH
|
||||
ExecSearchPath=/tmp:/bin
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for PassEnvironment with ExecSearchPath with PATH not set by user
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6" && test "$$VAR4" = "new\nline" && test "$$VAR5" = passwordwithbackslashes && test "$$PATH" = "/tmp:/bin"'
|
||||
Type=oneshot
|
||||
PassEnvironment=VAR1 VAR2 VAR3 VAR4 VAR5
|
||||
ExecSearchPath=/tmp:/bin
|
||||
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Test for specifiers with exec search path
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecSearchPath=/tmp:/bin:/usr/bin:%V
|
||||
ExecStart=/bin/sh -x -c 'test %V = /var/tmp && test "$$PATH" = "/tmp:/bin:/usr/bin:/var/tmp"'
|
||||
@@ -0,0 +1,4 @@
|
||||
[Service]
|
||||
ExecStart=ls_temp
|
||||
Type=oneshot
|
||||
ExecSearchPath=/tmp/test-exec_execsearchpath
|
||||
Reference in New Issue
Block a user