Bug 17900

Summary: functions-compat: demon(): incorrect quoting of -c argument to initlog
Product: Sisyphus Reporter: Ivan Adzhubey <iadzhubey>
Component: serviceAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P2 CC: evg, glebfm, ldv, legion, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description Ivan Adzhubey 2008-11-16 03:20:11 MSK
После очередного обновления перестал запускаться демон, установленный из 
вражеского RPM:

# service squeezecenter start
Starting SqueezeCenter: limited: Insufficient arguments.
Try `limited --help' for more information.                                                                                                        
[FAILED]

Попытки разобраться пока привели к следующим находкам.

В /etc/init.d/functions-compat:

# And start it up.
        if [ -z "$daemon_user" ]; then
                nice -n $nicelevel initlog $INITLOG_ARGS -n "$base" -c 
limited -n $base -- "sh -c '$*$bg'"
        else
                nice -n $nicelevel initlog $INITLOG_ARGS -n "$base" -c 
limited -n $base -- "su -s /bin/sh -l $daemon_user -c '$*$bg'"
        fi

Здесь аргумент -c команды initlog должен быть отквочен целиком, то есть вот 
так:

initlog $INITLOG_ARGS -n "$base" -c "limited -n $base -- su -s /bin/sh -l 
$daemon_user -c '$*$bg'"

После этого исправления запуск демона заработал.
Comment 1 Alexey Gladkov 2008-11-16 04:10:11 MSK
Спасибо. Исправлено в:

http://git.altlinux.org/people/legion/packages/service.git
Comment 2 Dmitry V. Levin 2008-11-16 20:05:23 MSK
0.5.18-alt1