Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #14381

a kind of a web-shell-api for managing long running processes

From Meredith Montgomery <mmontgomery@levado.to>
Newsgroups comp.unix.programmer, comp.programming
Subject a kind of a web-shell-api for managing long running processes
Followup-To comp.unix.programmer
Date 2021-12-30 17:16 -0300
Organization Aioe.org NNTP Server
Message-ID <86ee5tq25z.fsf@levado.to> (permalink)

Cross-posted to 2 groups.

Followups directed to: comp.unix.programmer

Show all headers | View raw


I'm helping someone to improve a CMS-type of web system.  This web
system sometimes needs to run some background processes --- such as send
a batch of e-mail or other process that takes a while to finish.

I see the challenge here as just writing something that will look like a
very basic UNIX shell --- so I'll call it ``web-api-shell'' from now on.
(``Web'' because it will be used by a web system through some API.)

This thing must run really well.  It has to be flawless.  I'm looking
for design principles and advice.

(*) Where will it run

It will run on GNU systems running the Linux kernel.

(*) My own thoughts

The interface to shell will be through HTTP requests, so this shell will
likely be a web server of some sort.  But before I get involved in the
web at all, I need the shell working flawlessly.

So I need a laboratory first.  I could write a program that reads some
named pipe on disk to get commands such as ``run this or that'' while I
work.  (Later I can write a web server replacing this named-pipe
interface.)

Just like a UNIX shell, this web-api-shell must know all every process
it runs.  I suppose the work is essentially fork(), execve() followed by
waitpid().

One concern I have is the following.  Is it possible for a process to
simply ``get out of'' the shell?  What do I mean by that?  A process
that does fork() and puts itself into background would leave the
web-api-shell's control, wouldn't it?

I think I must avoid that.  Perhaps I can't let just any process run.
Perhaps the web-api-shell must only offer a few processes carefully
written by myself --- so that I know they won't put themselves in
background.  (For instance, I can't let them change PIDs, otherwise I
won't have any idea who they are and that's a mess.  I'd love to somehow
restrict system calls such as fork().)

(*) What is my level of training?

In the past I've studied many parts of

  Advanced Programming in the UNIX Environment
  W. Richard Stevens

I will definitely have to read it again to get work on this project.
Can you mention any UNIX concepts that are of great relevance for this
project?  I don't think I ever got my mind wrapped around things like
sessions, session leaders and so on.  Are these concepts relevant to
this application?

Thank you very much.

Back to comp.programming | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

a kind of a web-shell-api for managing long running processes Meredith Montgomery <mmontgomery@levado.to> - 2021-12-30 17:16 -0300
  Re: a kind of a web-shell-api for managing long running processes Härra Ramob <he6655442211@hotmail.com> - 2022-01-03 01:21 -0800
  Re: a kind of a web-shell-api for managing long running processes Julio Di Egidio <julio@diegidio.name> - 2022-01-03 05:45 -0800

csiph-web