I decided to rewrite all our Bash scripts in Python (there are not so many of them) as my first Python project. The reason for it is that although being quite fluent in Bash I feel it's somewhat archaic language and since our system is in the first stages of its developments I think switching to Python now will be the right thing to do.
Are there scripts that should always be written in Bash? For example, we have an init.d daemon script - is it OK to use Python for it? We run CentOS.
How to send a EML file as email using python script to list of emails one at a time?
How to retrieve value from etc/sysconfig in Python
Displaying an image from the tmp directory
But the scripts in
/etc/init.dusually need to load config data and some functions (for example to print the nice green
OKon the console) which will be hard to emulate in Python..
How do they read clusters/cylinders/sectors from the disk?
So try to convert those which make sense (i.e.
Use OpenBSD's malloc, realloc and free in my program
those which contain complex logic).
Strange results while measuring delta time on Linux
If you need job control (starting/stopping processes), then bash is better suited than Python..
Java OutOfMemoryError due to Linux RAM disk cache not freed
Spring ResourceServlet throws too many open files exception in jetty and tomcat under linux
bash, sh, posix-sh, etc).
This is especially true of scripts that will be run at the lower init levels (e.g.
not every directory will be mounted in single user mode, including wherever python or the site-libraries might be installed).
. Most OS's provide some "helper functions" that make writing scripts in some native shell easier.
These scripts define certain return codes and messages that are required/desired when writing service scripts.
On RedHat based systems, see: .
Beyond that, the service scripts in /etc/init.d can be written in any language (including compiled languages).
The general calling syntax will need to be supported.
Typically there are three arguments that should be supported: start, stop, and status.
Some additional arguments might be appropriate, depending on the purpose of the scripts.
% /etc/init.d/foo (start|stop|status)
Replacing the backtick ` quote of
shis pretty ponderous in Python as would be myriad quoting details, just to name a couple.
There are likely better projects to cut your teeth on.. And all that they said above about Python being relatively heavyweight and not necessarily available when needed..
This kind of thing is much more tedious in python..