Summary: | lighttpd failed to start at first boot when using include_shell with (shell) script | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Phattanon Duangdara <phattanon> |
Component: | Current packages | Assignee: | www-servers Herd (OBSOLETE) <www-servers+disabled> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alan, bangert, ka0ttic, sam |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Other | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Phattanon Duangdara
2006-07-14 05:24:06 UTC
Same problem here. Full error for me: --- env SHELL is required (configfile.c.882) opening /bin/cat vhosts.d/*.conf failed: Success source: /etc/lighttpd/lighttpd.conf line: 324 pos: 1 parser failed somehow near here: (EOL) --- Last few lines of my lighttpd.conf: --- 320 321 include_shell "/bin/cat vhosts.d/*.conf" 322 323 # vim: set ft=conf foldmethod=marker et : --- No problem if include_shell isn't used. I tried having a look around, and I can't actually see where a SHELL env var is set anywhere in the boot process, as it doesn't seem to exist in /etc/env.d/ or /etc/rc.conf, yet it must come from somewhere for it to be able to start later. I would have assumed possibly from the user's profile (whatever is specified as the user's shell in /etc/passwd) but it appears to be dying at this line in the initscript: /usr/sbin/lighttpd -t -f ${LIGHTTPD_CONF} >/dev/null which looks like its being run as root, which definitely has a shell set. So... I'm thoroughly confused as to why this isn't working. Any ideas? There is simple workaround. Put SHELL="/bin/bash" in /etc/conf.d/lighttpd (until this get fixed) (In reply to comment #2) > There is simple workaround. > Put SHELL="/bin/bash" in /etc/conf.d/lighttpd (until this get fixed) > Actually this should be export SHELL="/bin/bash" -- El hi El, i have added SHELL=/bin/bash to /etc/conf.d/lighttpd. does this not work for you? thanks Hi, I also had to change /etc/conf.d/lighttpd to 'export SHELL=/bin/bash'. 'SHELL=/bin/bash' didn't work for me. It does sorta make sense. The SHELL env variable is read by lighttpd itself (a child process). The other variables are read by /etc/init.d/lighttpd which is quite probably executed within the same process (therefore not needing 'export'). I say quite probably because I haven't read the source of /sbin/runscript. Sam # Location of a shell used by the 'include_shell' directive # in the lighttpd's configuration file #export SHELL="/bin/bash" has been added to /etc/conf.d/lighttpd. uncomment the 'export' line and specify the wanted shell if you use include_shell. thanks for the report. |