该命令的开关和参数的含义是什么?
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”作为选项。