Alex;

First, thanks for the plain explanation of the scripting to support Pico Lisp server. For clarification though, you have the Pico Lisp application installed as a user under home, but Pico Lisp is installed in usr/local correct? Also, where do you place each of these scripts? Do you have the first one in /etc/init.d and where are the other two positioned?

Regards, MacOS I have not give up on this, but because MacOS is somewhat different (e.g., the pstopdf vs. ps2pdf, etc.) I thought it would be easier to deepen my understanding of Pico Lisp in the Linux environment and then perhaps I am better equipped to then deal with the MacOS specific issues.

Thanks for all of your fine support.

Anthony

On Jul 3, 2008, at 3:52 AM, Alexander Burger wrote:

Hi Anthony,

Due to frustrations working with Pico Lisp on MacOSX10.5 I recently

sorry to hear that ... we obviously did not succeed to find a unified
'make' process for Mac OS.


creating a Pico Lisp init.d script within Debian possibly with a

I think the script can be very simple. Here is what I use (with only
slight modifications depending on the project):

################################################################
#!/bin/sh

case "$1" in
  start)
     echo "Starting Pico Lisp Application Server ..."
     su - -c xxx/run app
     (cd /home/app; bin/httpGate 80 8080)
     (cd /home/app; bin/httpGate 443 8080 xxx/pem)
     ;;

  stop)
     echo "Stopping Pico Lisp Application Server ..."
     su - -c xxx/stop app
     killall httpGate
     ;;

  *)
     eco "Usage: /etc/init.d/$0 {start|stop}"
     exit 1
     ;;
esac

exit 0
################################################################

This assumes, that a user 'app' exists on that machine, and that the
PicoLisp environment is installed in that user's home directory. That
means, when 'app' is logged in, all PicoLisp files (like "lib.l" "lib/", "src/" or "dbg.l" are located relative to his current working directory.

The line with 'httpGate 80' can be omitted, if you want to limit access
to HTTPS (i.e. only to port 443). This is also useful if some other
process (e.g. Apache) is listening on port 80 on that machine.

To start 'httpGate' for SSL (the line with 'httpGate 443'), you need to supply a cert file (here "xxx/pem"). This can be self-made with openssl.


The 'xxx' is the name of the project specific directory. I usually have
some start script 'run' which starts (in addition to the actual
application) a watchdog process (also in the PicoLisp release) to notify us when a process hangs, and a password file to be used for interactive
access with "bin/psh".

################################################################
#!/bin/bash

bin/picolisp -'prinl (in "/dev/random" (rd 12))' -bye >.pw
chmod 600 .pw

bin/watchdog localhost 25 [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] >>log/watchdog 2>&1 &
while [ ! -p fifo/beat ]
  do sleep 1
done

./p xxx/main.l lib/app.l  -main -go -wait >>log/xxx  2>&1 &
################################################################


The 'stop' script is simpler:

################################################################
#!/bin/bash
# 17jun06abu

# Kill applications
killall -w picolisp

# Stop watchdog
test "$(ps h -C watchdog)" && bin/picolisp -'out "fifo/beat" (pr)' -bye
################################################################


The whole mess is simpler than it looks at the first sight, though ;-)

Cheers,
- Alex
--
UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

--
UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

Reply via email to