On Sat, Oct 15, 2016 at 3:28 PM, Andy Mender <andymenderu...@gmail.com> wrote:
> Hello everyone, > > I managed to solve some of my problems. It turned out that my terminal was > being spammed > with erroneous output, because I didn't add the "exec 2&>1" redirection to > my ./run files. > This behavior is fairly consistent among supervisors. The use of STDERR typically is left to the administrator to decide; more commonly, it's simply tied off into the STDOUT stream for ease of use. > > Another problem popped up on my Devuan box, though. I was trying to add a > log directory with a ./run script inside to log dhcpcd per runit's design. > However, runsvdir complaints that "exec: not found". > This is probably a problem with your shell. The shebang specified might point to an actual sh and not something like bash, ash, dash, etc. I don't have a reference handy but I suspect that you are seeing failure messages for "exec" because the shell doesn't support that built-in. If you encounter this, change the first line to /bin/bash or /bin/ash or /bin/dash and see if that resolves the issue. > The same run scripts work on Gentoo, which makes it even more surprising. > Gentoo may be mapping /bin/sh to bash/ash/something else, but I don't know. I would suggest finding out. > Below the log/run script: > #!/bin/sh > exec chpst -u log svlogd -tt ./ > I'll post a companion log script in a moment. > PS Earlier runsvdir was complaining that "log: user/group not found". I > created the "log" group, thinking it might help somehow. > You shouldn't need to create the group normally, which may indicate a separate issue. Try this run script in your ./svcdef/dbus/log directory. It's lifted straight from the source at http://bitbucket.org/avery_payne/supervision-scripts as the ./svcdef/.log/run-svlogd script. Please note that you may need to change the group name after chown, and the shell in the first line to meet your needs: #!/bin/shexec 2>&1# determine our parent's nameSVNAME=$( basename $( echo `pwd` | sed 's/log//' ) )# bring up svlogd logging into a subdirectory that has the parent's name.[ -d /var/log/$SVNAME ] || mkdir -p /var/log/$SVNAME ; chown :adm /var/log/$SVNAME[ -d main ] || ln -s /var/log/$SVNAME mainexec /usr/bin/svlogd -tt main If you are using Gentoo, I would recommend looking at Toki Clover's implementation at https://github.com/tokiclover/supervision. I hope this helps.