Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > How to write UNIX daemons in Python?

Reply
Thread Tools

How to write UNIX daemons in Python?

 
 
gnewsg@gmail.com
Guest
Posts: n/a
 
      09-13-2006
Hi all. I've just finished to write an FTP daemon in Python.
To do things well I'd like to write an 'insteller' to permit the end
user to 'deeply' install the package inside the system. In details I
would like that installer is able to do the following operations:

- copy ftpd.py in /usr/bin.
- depending on the system, it should be able to determinate where
service startup directory is located (for example /etc/init.d) and
copy a script able to automatically run /usr/ftpd.py at startup.
- optionally install a manual callable with "man ftpd".
- many other operations about the installation of a package.

What should I use to do something like that? Do I have to use
distutils? Do I have to use third party packages? Do I have to write a
"setup.py" and solve the problem manually?
This last solution is problematic becouse, for (dumb) example, Debian
wants executable/programs to be located in /usr/bin while Fedora uses
another path (for example /usr/sbin).

Another question: what about .deb, .rpm, [...] packages?
Does it possible to use them with Python programs?
Resolving third party dependancies by using them could be a nice thing.


Best regards

 
Reply With Quote
 
 
 
 
Diez B. Roggisch
Guest
Posts: n/a
 
      09-13-2006
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

> Hi all. I've just finished to write an FTP daemon in Python.
> To do things well I'd like to write an 'insteller' to permit the end
> user to 'deeply' install the package inside the system. In details I
> would like that installer is able to do the following operations:
>
> - copy ftpd.py in /usr/bin.
> - depending on the system, it should be able to determinate where
> service startup directory is located (for example /etc/init.d) and
> copy a script able to automatically run /usr/ftpd.py at startup.
> - optionally install a manual callable with "man ftpd".
> - many other operations about the installation of a package.
>
> What should I use to do something like that? Do I have to use
> distutils? Do I have to use third party packages? Do I have to write a
> "setup.py" and solve the problem manually?
> This last solution is problematic becouse, for (dumb) example, Debian
> wants executable/programs to be located in /usr/bin while Fedora uses
> another path (for example /usr/sbin).
>
> Another question: what about .deb, .rpm, [...] packages?
> Does it possible to use them with Python programs?
> Resolving third party dependancies by using them could be a nice thing.


You can use setuptools to generate scripts in the various bin-directories.
And of course you could try and make setup.py detect the system & adapt the
necessary paths accordingly.

But the best thing to do would certainly be a package - however, I'm not
aware that there is any support for that. But a look here might be a start:

http://wiki.debian.org/DebianPythonFAQ

Diez
 
Reply With Quote
 
 
 
 
=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=
Guest
Posts: n/a
 
      09-13-2006
(E-Mail Removed) schrieb:
> What should I use to do something like that? Do I have to use
> distutils? Do I have to use third party packages? Do I have to write a
> "setup.py" and solve the problem manually?
> This last solution is problematic becouse, for (dumb) example, Debian
> wants executable/programs to be located in /usr/bin while Fedora uses
> another path (for example /usr/sbin).
>
> Another question: what about .deb, .rpm, [...] packages?
> Does it possible to use them with Python programs?
> Resolving third party dependancies by using them could be a nice thing.


I would create packages, and therefore restrict attention to the
systems that are to be supported.

For RPM, there is a distutils bdist_rpm command which can help in
generating the RPM. OTOH, it might be actually easier to write a .spec
file and build the RPM "manually".

For .deb, there is also a bdist_deb distutils command (although not
part of the standard Python distribution), again, it is likely easier
to use the standard Debian packaging tool chain (i.e. with an
explicit debian/ subdirectory, initially populated with dh_make).

In either case, it is probably a good idea to look at source packages
to get started quickly.

FWIW, Debian does *not* put daemon programs in /usr/bin. Debian
follows the FHS, which specifies that system binaries go into
/usr/sbin. /usr/bin is limited to user programs.

Regards,
Martin
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
Unix Daemons in C++ barcaroller C++ 1 11-27-2008 11:31 AM
Unix Daemons in Perl -- Tutorial elsiddik Perl Misc 0 11-07-2007 07:48 PM
Re: 2 daemons write to a single file /w python file IO Steven W. Orr Python 0 09-14-2007 08:52 PM
2 daemons write to a single file /w python file IO Andrey Python 0 09-12-2007 04:17 AM



Advertisments