Re: [BUG?] binfmt_script: interpreted interpreter doesn't work

Ingo Oeser (ingo.oeser@informatik.tu-chemnitz.de)
Sun, 15 Sep 2002 22:06:51 +0200


Hi Pozsar,

On Sun, Sep 15, 2002 at 07:15:38PM +0200, Pozsar Balazs wrote:
> This may well not be bug, rather an intended feature, but please enlighten
> me why the following doesn't work:
>
> I have two scripts:
> /home/pozsy/a:
> #!/bin/sh
> echo "Hello from a!"
>
> /home/pozsy/b:
> #!/home/pozsy/a
> echo "hello from b!"
>
> Both of them has +x permissions.
> But I cannot execute the /home/pozsy/b script:
>
> Isn't this "indirection" allowed?

Right, this isn't allowed to avoid eating kernel resources
without getting anything done.

Solution is to always compile an interpreter or to write
a wrapper in C, which is compiled and calls the perl interpreter
with your perl script. This wrapper would be ANSI-C with really
basic POSIX extensions and should thus be as portable as perl ;-)

So you hide the indirection from the kernel this way.

Of course you now define the wrapper as the interpreter for your
perl scripts.

Hope that helps.

Regards

Ingo Oeser

-- 
Science is what we can tell a computer. Art is everything else. --- D.E.Knuth
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/