function __fish_print_service_names -d 'All services known to the system' if test -d /run/systemd/system # Systemd systems # For the `service` command, this needs to be without the type suffix # on Debian at least __fish_systemctl_services | string replace -r '.service$' '' else if type -f rc-service ^/dev/null # OpenRC (Gentoo) command rc-service -l else if test -d /etc/init.d # SysV on Debian and other linuxen string replace '/etc/init.d/' '' -- /etc/init.d/* else # Freebsd command service -l end end