Re: Cannot start service, initgroups(gotify,365): Operation not permitted
Am 12.10.2024 um 11:37 schrieb Ronald Klop: sh -x /usr/local/etc/rc.d/gotify_server start Are your sure you ran 'service gotify_server start' as root? The man pages say that iinitgroups can only return EPERM via a call to setgroups when not run as root. thanks for the tip with sh -x, that made the problem visible. I changed now this line: command_args="-f -P ${pidfile} %%PREFIX%%/bin/gotify-server ${gotify_server_args}" This causes the execution of: + eval $' limits -C daemon su -m gotify -c \'sh -c " /usr/sbin/daemon -f -P /var/run/gotify_server.pid /usr/local/bin/gotify-server "\'' + limits -C daemon su -m gotify -c 'sh -c " /usr/sbin/daemon -f -P /var/run/gotify_server.pid /usr/local/bin/gotify-server "' which is exactly what I want. The binary is now executed. There is no need to give a -u flag to daemon. Gruß Matthias -- "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook
Cannot start service, initgroups(gotify,365): Operation not permitted
Dear all, I currently try to create a port for gotify. The port itself is more or less complete, but I have problem with the init script: #!/bin/sh # PROVIDE: gotify_server # REQUIRE: DAEMON NETWORKING # KEYWORD: shutdown # # Add these lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # gotify_server_enable (bool): Set to NO by default. # Set it to YES to enable mailpit. # gotify_server_dir (str): Set to "/var/db/gotify" by default # Set it to directory to run gotify in # gotify_server_user (str): Set to "gotify" by default. # Set it to user to run gotify-server under # gotify_server_group (str): Set to "gotify" by default. # Set it to group to run gotify-server under # gotify_server_args (string): Custom extra arguments for gotify-server . /etc/rc.subr name="gotify_server" rcvar="gotify_server_enable" desc="Run Gotify notification server" load_rc_config ${name} : ${gotify_server_enable:="NO"} : ${gotify_server_dir:="/var/db/gotify"} : ${gotify_server_user:="gotify"} : ${gotify_server_group:="gotify"} : ${gotify_server_args:=""} export HOME=${gotify_server_dir} export PATH=${PATH}:%%PREFIX%%/bin pidfile="/var/run/${name}.pid" command="/usr/sbin/daemon" command_args="-f -p ${pidfile} -u ${gotify_server_user} %%PREFIX%%/bin/gotify-server ${gotify_server_args}" start_precmd="gotify_server_precmd" gotify_server_precmd() { if [ ! -e "${pidfile}" ]; then install -g ${gotify_server_group} -o ${gotify_server_user} -- /dev/null "${pidfile}"; fi } run_rc_command $1 If I install the package, enabled it (sysrc gotify_server_enable="YES") and start it with: service gotify_server start It just returns and I see in /var/log/messages: Oct 12 09:55:56 gitlab daemon[9157]: initgroups(gotify,365): Operation not permitted The user is existing: gotify:*:365:365:Gotify User:/var/db/gotify:/bin/sh Group is existing: gotify:*:365: and If I execute the command manually it works: /usr/sbin/daemon -f -p /var/run/gotify_server.pid -u gotify /usr/local/bin/gotify-server So it is related to something the init scripts are doing. Does maybe anyone have a idea? Thanks Gruß Matthias -- "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook
Re: Cannot start service, initgroups(gotify,365): Operation not permitted
If you run the script with sh -x you will get output of what it is doing. This can help identifying which part of the script fails. sh -x /usr/local/etc/rc.d/gotify_server start Are your sure you ran 'service gotify_server start' as root? The man pages say that iinitgroups can only return EPERM via a call to setgroups when not run as root. Regards, Ronald Van: Matthias Fechner Datum: zaterdag, 12 oktober 2024 10:02 Aan: ports@freebsd.org Onderwerp: Cannot start service, initgroups(gotify,365): Operation not permitted Dear all, I currently try to create a port for gotify. The port itself is more or less complete, but I have problem with the init script: #!/bin/sh # PROVIDE: gotify_server # REQUIRE: DAEMON NETWORKING # KEYWORD: shutdown # # Add these lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # gotify_server_enable (bool):Set to NO by default. # Set it to YES to enable mailpit. # gotify_server_dir (str):Set to "/var/db/gotify" by default # Set it to directory to run gotify in # gotify_server_user (str): Set to "gotify" by default. # Set it to user to run gotify-server under # gotify_server_group (str): Set to "gotify" by default. # Set it to group to run gotify-server under # gotify_server_args (string):Custom extra arguments for gotify-server . /etc/rc.subr name="gotify_server" rcvar="gotify_server_enable" desc="Run Gotify notification server" load_rc_config ${name} : ${gotify_server_enable:="NO"} : ${gotify_server_dir:="/var/db/gotify"} : ${gotify_server_user:="gotify"} : ${gotify_server_group:="gotify"} : ${gotify_server_args:=""} export HOME=${gotify_server_dir} export PATH=${PATH}:%%PREFIX%%/bin pidfile="/var/run/${name}.pid" command="/usr/sbin/daemon" command_args="-f -p ${pidfile} -u ${gotify_server_user} %%PREFIX%%/bin/gotify-server ${gotify_server_args}" start_precmd="gotify_server_precmd" gotify_server_precmd() { if [ ! -e "${pidfile}" ]; then install -g ${gotify_server_group} -o ${gotify_server_user} -- /dev/null "${pidfile}"; fi } run_rc_command $1 If I install the package, enabled it (sysrc gotify_server_enable="YES") and start it with: service gotify_server start It just returns and I see in /var/log/messages: Oct 12 09:55:56 gitlab daemon[9157]: initgroups(gotify,365): Operation not permitted The user is existing: gotify:*:365:365:Gotify User:/var/db/gotify:/bin/sh Group is existing: gotify:*:365: and If I execute the command manually it works: /usr/sbin/daemon -f -p /var/run/gotify_server.pid -u gotify /usr/local/bin/gotify-server So it is related to something the init scripts are doing. Does maybe anyone have a idea? Thanks Gruß Matthias -- "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook