我正在尝试使用scsudo
运行一些定义的命令来停止和启动 UNIX 主机上的进程。我遇到的问题是,scsudo
当从命令配置文件调用脚本时,似乎不喜欢使用位置参数scsudo
。
我的任务是scsudo
减少停止和启动进程和其他已定义命令的功能访问请求的数量,以及与此相关的管理开销。
这是一个例子:
scsudo - <functional_id> "/opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3"
Password:
Reason:
execvp: No such file or directory
看起来 scsudo 配置文件在调用脚本时似乎没有处理参数,因此无法找到要求运行的脚本。
我已在包含参数的命令周围放置括号,但这仍然没有解决问题?
我已经彻底搜索了网络和 Stack Exchange,但无法返回太多与scsudo
使用scsudo
.
我将非常感激您在此事上的协助。
答案1
当你知道这个技巧时,这就是微不足道的:
scsudo - <functional_id> sh -c "/opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3"
您也许还可以使用:
scsudo - <functional_id> /opt/scripts/Start_Process_script.sh parameter1 parameter2 parameter3
如果脚本以适当的 shebang(#!/bin/sh
或#!/bin/bash
其他)开头。
正如您编写的那样,该命令正在寻找执行被调用的scsudo
程序(包含嵌入空格),但没有找到它,因此出现错误。/opt/scripts
"Start_Process_script.sh parameter1 parameter2 parameter3"