Upstart 作业:将带有转义引号的命令传递给 exec 节

Upstart 作业:将带有转义引号的命令传递给 exec 节

server.conf我有一个名为启动游戏服务器的upstart 作业,其中包含以下内容

#!upstart

exec /srv/l4d2/srcds_run -game left4dead2 -tickrate 30 -maxplayers 8 -ip 192.168.1.1 "+map \"c1m1_hotel versus\"" +exec server.cfg

当我运行时 start server.conf,作业没有启动,日志文件显示/bin/sh: 1: /bin/sh: 语法错误:未终止的引用字符串

直接在控制台中运行该命令时,它工作正常。那么如何在不破坏它的情况下在 exec 节中使用它呢?

答案1

关键在于发出错误消息的程序:/bin/sh。shellsh的引用规则无法识别“ \"”。请参阅man sh。请改用单引号“ '”。

exec /srv/l4d2/srcds_run -game left4dead2 -tickrate 30 -maxplayers 8 -ip 192.168.1.1 "+map 'c1m1_hotel versus'" +exec server.cfg

相关内容