Steffen Dettmer wrote: > logrotate seems to execute "postrotate" scripts using /bin/sh and I > found no way where to specify which script interpreter to use. > Starting with a she-bang line seem to have no effect. Even if I > manually run logrotate as root who has /bin/bash as login shell, > /bin/sh is used. > > How to make logrotate to use the correct interpreter for > "postrotate" scripts? "Correct" is in the eye of the beholder. /bin/sh is the standard shell and therefore it _is_ the "correct" shell. But as documented the postrotate snippet is a /bin/sh section. Ralf Mardorf wrote: > using > > sh myscript > dash myscript > bash myscript Those will work. Don't forget that most shells have a -c option to run a command. Then it doesn't need to be a file. Then it can search for the command on PATH. postrotate bash -c "some command with args here found on PATH" endscript Could even be inline scripting as long as the quoting is correct. postrotate bash -c "if $foo; then bar; fi" endscript But for the most part I recommend just using the standard shell. It will then work across many revisions of the system. Bash itself has had a lot of changes in recent history. IMNHO it isn't worth the effort to chase it. What feature are you trying for that is worth the hassle? Bob
Attachment:
signature.asc
Description: Digital signature