这些 exec su 参数起什么作用?

这些 exec su 参数起什么作用?

该命令的开关和参数的含义是什么?

exec su -s /bin/sh -c 'exec "$0" "$@"' root -- /opt/nsq/bin/nsqd

具体来说,是哪个--部分以及exec "$0" "$@"应该做什么。

我知道$0设置了一个循环来让脚本继续运行。

你可以忽略这/opt/nsq/bin/nsqd部分。这是我正在运行的应用程序。

答案1

exec

它运行的命令,,无需创建新进程即可替换shell。

sudo -s /bin/sh -c 

替代用户运行指定的shell /bin/sh并执行以下命令。

exec "$0" "$@"

运行命令$0,脚本的名称,(您的第一个变量,即/opt/nsq/bin/nsqd

"$@"

包含所有参数,使用适当的引用

--

双连字符分隔选项列表。后面的所有内容,即使以连字符开头,也被视为操作数。例如,sort -- -r从命名的文件中读取,-r而不是尝试使用“-r”作为选项。

相关内容