Why are you still using the most harmful init system of all time for GNU/Linux, /tech/?
systemd is:
>bloated
>viral
>not portable
>a fractal of bad design
Helpful Links:
http://without-systemd.org
http://suckless.org/sucks/systemd
http://syslog.me/2015/01/02/on-systemd/
http://skarnet.org/software/s6/systemd.html
http://blog.darknedgy.net/technology/2015/10/11/0/
https://forums.freebsd.org/threads/systemd-is-obsolete.49372
Good Alternatives:
OpenRC
runit
GNU's dmd
BSD-style init
busybox init
even sysvinit
POETTERINGWARE, NOT EVEN ONCE.
>Good Alternatives:
>even sysvinit
>>51232362
It's running well on all my production servers.
So far, the only people I've found that hate systemd are:
>bsd-babies who can't pirate linux software as easily since they have systemd dependencies
>idiots who don't know how to setup their fstab correctly
Arch on laptop.
FreeBSD on server.
No one forces you to use systemd, there are plenty of alternatives.
>>51232395
There is nothing wrong with sysv init scripts.
>Comment ignoring that systemd is the name of the project, not the init component of it
>Argument based around certain portions of the Unix philosophy that systemd does not adhere to. With or without dismissal of other projects that also do not adhere to said tenets.
>Declarative question dismissing Linux as a platform in favor of (Free)BSD.
>Reference to enigmatic 'veteran unix admins' who will surely one day release their Italian fork of Debian without the systemctl menace.
>There is nothing wrong with sysv init scripts
>Something something SJW
You can just skip to the part where your thread dies now.
>>51232507
>nothing wrong[Unit]
Description=my daemon
[Service]
ExecStart=/usr/local/bin/mydaemon
vs.#!/bin/sh
dir="/srv/mydaemon"
cmd="/usr/local/bin/mydaemon"
user="mydaemon"
name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}
case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
(note that the latter script is vulnerable to a race condition, so it's not just full of boilerplate -- it's also broken.)
>>51232709
You forgot to include LSB headers, and you didn't use daemon/killproc. For these reasons we can't include your initscript in our distribution.
>Said no one ever
>>51232788
I removed the comments at the top and some blank lines to get the script to fit in my post. (if anything, that actually strengthens my point that initscripts are pointlessly gigantic)
Here's the full file if you want to see it: https://github.com/fhd/init-script-template/blob/master/template
Honestly, I'd like to see a more fair and balanced review of Systemd vs SysV's init.
My only gripe against systemd, is just that it's so darn huge and all encompassing. Furthermore, it's not the most intuitive init system. I have a hard time even following how it works to a point.
Does anyone have a decent review and write up of a non biased article comparing systemd to other initiallization processes?
Is systemd bigger than the Windows init program?
>>51233509
I'm pretty sure just the init piece of systemd is much smaller than wininit. however if you include things like boot manager and other things it's most definitely bigger.
>>51232362
Uh yeah no
Sages
>>51232904
>My only gripe against systemd, is just that it's so darn huge and all encompassing.
Because systemd is the name of the project, not just an init system. The init component is just referred to as the systemd init daemon.
Being all-encompassing is the point of the systemd project - they want to make everything needed for a standard GNU+Linux system, so there can actually be a standard that is used. You know, as opposed to the beaten stepchild that is the LSB. The easy example being networkd, which fixes the current situation where network configuration is handled different between distributions (such as Debian's etc/interfaces and CentOS sysconfig/network-scripts).
>>51233832
>>51233832
Yea, and I agree with that, the networking aspect I'm very very glad they unified. I'm just a bit perturbed at how big systemd is, I prefer my linux in smaller 'nuggets'. Systemd is so..hm...monolithic. But I agree, it does definitely have it's major advantages.