You are not logged in.
Hi there. some days ago, i post this thread -> https://dev1galaxy.org/viewtopic.php?id=2306
and well yesterday i upgrade the software on my Devuan Jessie.
Right now, the Service don't start at boot. the first was the "/sbin/runscript" don't exist anymore
the second is i modify the first line on the script, there are the command to generate the script :
echo '#!/sbin/openrc-run
description="Start/Stop the no-ip daemon"
depend()
{
after *
keyword notimeout
}
start()
{
ebegin "Starting NoIP"
/usr/bin/noip2
eend $? "Failed to start NoIP"
}
stop()
{
ebegin "Stopping NoIP"
killall -TERM /usr/bin/noip2
eend $? $"Failed to stop NoIP"
}' | sudo tee /etc/init.d/noip2 ; sudo chmod a+rx /etc/init.d/noip2
and right now in the /var/log/boot :
Thu Aug 30 18:31:38 2018: ^[[1m^[[31m*^[[m noip2: not enough arguments^[[K
Thu Aug 30 18:31:38 2018: ^[[1m^[[31m*^[[m ERROR: noip2 failed to start^[[K
when i reach my desktop environment and i try to run it directly from cli :
sudo service noip2 start
* WARNING: noip2 has already been started
ps -A | grep noip
the "noip2" is not running. with the old version of runscript works perfectly. but right now i don't have idea how to make it work.
Last edited by inukaze (2018-08-31 22:44:24)
Offline
I am not sure exactly what your problem is, but here is how OpenRC init process are run.
OpenRC init scripts need to be in /etc/init.d/, this is what "runs".
OpenRC runlevels are defined in /etc/runlevels/, you need a symlink here under the desired runlevel pointing to the script in /etc/init.d/ so the script gets run.
Once you have the script in /etc/init.d/, you enter "rc-update add <service> <runlevel>" where <service> is your script name in /etc/init.d/ and <runlevel> is your desired runlevel under /etc/runlevel.
From your post, it seems you need some sort of "noip" startup script in /etc/init.d, and then perform the rc-update add noip default (for default runlevel, or whatever runlevel).
Last edited by dxrobertson (2018-08-31 00:51:00)
Offline
The problem is the noip2 don't start at boot anymore, after the last upgrade, when the runscript dont exist anymore in /sbin/runinit, instead follow gentoo wiki, i should use openrc-run for the shebang in the first line.
Offline
echo '#!/sbin/openrc-run
is an unusual first line for a script. Or was it a mistake when copying to here? Otherwise you should remove the first 6 characters, so that the very first character is the "#" character. Or equally, make it so to say:
#!/sbin/openrc-run
Offline
That are a command to generate the script from cli. its not directly the script. the first line inside the script is :
#!/sbin/openrc-run
if you read the lines, you see at the end, the command :
sudo tee /etc/init.d/noip2 ; sudo chmod a+rx /etc/init.d/noip2
For generate the file and make executable for all users.
Offline
ah. of course.
If you've done the set up as @dxrobertson mentioned, maybe the problem is that the noip2 daemon needs some configuration that is missing? E.g., should it have "-i IPaddress" on the command line? Though, I must admit I know less about noip2 than is written at https://github.com/jamesstout/no-ip/blo … ADME.FIRST.
Offline
Confused.
Your original post states "How i must write "openrc-run" script for launch boot service?". Assuming OpenRC is the init process.
But you used the command "sudo service noip2 start", which is a sysvinit command.
OpenRC or sysvinit?
Please post contents of /etc/init.d/rcS. OpenRC should be:
#!/bin/sh
# Wrapper of OpenRC called from inittab
set -e
exec /sbin/openrc sysinit
It might help to also post /etc/inittab, should have:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
Offline
$ cat /etc/init.d/rcS
#!/bin/sh
# Wrapper of OpenRC called from inittab
set -e
exec /sbin/openrc sysinit
$ cat /etc/inittab
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
Offline
OK, you are using OpenRC.
I am guessing that noip2 is an init script, and that it is supposed to run the actual program noip? Assuming so...
There should be a noip2 script in /etc/init.d, does it exist? If so, is it formatted correctly, similar to the other scripts in /etc/init.d? You can post the contents if you like.
OpenRC commands you can use, you can post the output here if you like:
display all init scripts and what runlevel they run under:
rc-update show
noip2 should display
display what is setup to run by runlevel
rc-status -a
noip2 should display as started
manually run noip2
rc-service noip2 start
set noip2 to run automatically under runlevel default
rc-update add noip2 default
Last edited by dxrobertson (2018-09-01 12:31:48)
Offline
$ sudo rc-update show | grep no
mono-xsp4 | default
noip2 | default
rmnologin | default
$ sudo rc-status -a | grep no
mono-xsp4 [ started ]
rmnologin [ started ]
$ sudo rc-service noip2 start
Not show nothing
$ sudo rc-update add noip2 default
* rc-update: noip2 already installed in runlevel `default'; skipping
$ sudo rc-service noip2 stop
* Caching service dependencies ...
* Found a solvable dependency loop: cryptdisks a> umountfs u> hwclock.sh a> checkroot n> cryptdisks-early a> lvm2 u> cryptdisks.
* Found a solvable dependency loop: cryptdisks a> umountfs u> hwclock.sh a> checkroot n> cryptdisks.
* Found a solvable dependency loop: cryptdisks a> umountfs u> hwclock.sh a> checkroot n> cryptdisks-early n> cryptdisks.
* Solving the loop by breaking umountfs u> hwclock.sh.
* Solving the loop by breaking lvm2 u> cryptdisks.
* Found a solvable dependency loop: rc.local u> rmnologin u> single u> stop-bootlogd u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> single u> stop-bootlogd u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> single u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> single u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> stop-bootlogd u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> stop-bootlogd u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> rmnologin u> rc.local.
* Found a solvable dependency loop: rc.local u> single u> stop-bootlogd u> rc.local.
* Found a solvable dependency loop: rc.local u> single u> stop-bootlogd u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> single u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> single u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd u> stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd-single u> rc.local.
* Solving the loop by breaking rc.local u> rmnologin.
* Solving the loop by breaking single u> stop-bootlogd.
* Solving the loop by breaking rmnologin u> single.
* Solving the loop by breaking stop-bootlogd u> rc.local.
* Solving the loop by breaking stop-bootlogd-single u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd-single u> rmnologin u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd-single u> single u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd u> rmnologin u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd u> stop-bootlogd-single u> rmnologin u> rc.local.
* Found a solvable dependency loop: rc.local u> single u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd u> single u> rc.local.
* Found a solvable dependency loop: rc.local u> stop-bootlogd u> stop-bootlogd-single u> single u> rc.local.
* Solving the loop by breaking rc.local u> stop-bootlogd-single.
* Solving the loop by breaking stop-bootlogd u> rmnologin.
* Solving the loop by breaking single u> rc.local.
* Solving the loop by breaking stop-bootlogd-single u> rmnologin.
* Solving the loop by breaking rmnologin u> rc.local.
* Found a solvable dependency loop: rmnologin u> stop-bootlogd u> single u> rmnologin.
* Found a solvable dependency loop: rmnologin u> stop-bootlogd u> stop-bootlogd-single u> single u> rmnologin.
* Found a solvable dependency loop: rmnologin u> stop-bootlogd-single u> single u> rmnologin.
* Solving the loop by breaking single u> rmnologin.
* Solving the loop by breaking rmnologin u> stop-bootlogd.
* Solving the loop by breaking stop-bootlogd u> single.
* Found a solvable dependency loop: single u> stop-bootlogd-single u> single.
* Solving the loop by breaking stop-bootlogd-single u> single.
* Found a solvable dependency loop: stop-bootlogd u> stop-bootlogd-single u> stop-bootlogd.
* Solving the loop by breaking stop-bootlogd-single u> stop-bootlogd. [ ok ]
$ sudo rc-service noip2 start ; ps -A | grep noip
5100 ? 00:00:00 noip2
Well let me restart to test the changes. because with manual start using rc-service, now run
The Process don't run automatically at boot. i don't understand why.
but right now, i not got errors with noip2 during boot process.
Last edited by inukaze (2018-09-02 08:25:18)
Offline
OpenRC logging may help with init process problems. You can enable logging in /etc/rc.conf. The log file will be /var/log/rc.log".
To enable OpenRC logging, edit /etc/rc.conf:
rc_logger="YES"
rc_verbose=yes
Offline
OpenRC logging may help with init process problems. You can enable logging in /etc/rc.conf. The log file will be /var/log/rc.log".
To enable OpenRC logging, edit /etc/rc.conf:
rc_logger="YES" rc_verbose=yes
cat /var/log/rc.log
rc sysinit logging started at Sun Sep 2 08:15:57 2018
OpenRC 0.13.1 is starting up Linux 3.16.0-6-amd64 (x86_64)
* /proc is already mounted
* /run/openrc: creating directory
* /run/lock: correcting mode
* /run/lock: correcting owner
[....] Starting the hotplug events dispatcher: udevd[ ok .
[....] Synthesizing the initial hotplug events...[ ok done.
[....] Waiting for /dev to be fully populated...[ ok done.
[....] Setting parameters of disc: (none)[ ok .
[....] Setting preliminary keymap...[ ok done.
[....] Activating swap...[ ok done.
[....] btrfs root detected, so skipping root file system check. ...[warn (warning).
[....] Setting up LVM Volume Groups... No volume groups found
[ ok done.
[....] Activating lvm and md swap...[ ok done.
[....] Checking file systems...fsck from util-linux 2.25.2
Compartido: clean, 579517/39321600 files, 145635887/157286400 blocks
Slack64: clean, 427214/2940928 files, 3838220/11748352 blocks
Slack32: clean, 329559/2940928 files, 1923647/11747584 blocks
1SlackIni: clean, 964/65536 files, 113016/262144 blocks
2SlackIni: clean, 942/65808 files, 22250/263168 blocks
[ ok done.
[....] Cleaning up temporary files... /tmp[ ok .
[....] Mounting local filesystems...[ ok done.
[....] Activating swapfile swap...[ ok done.
[....] Cleaning up temporary files...[ ok .
[....] Setting kernel variables ...[ ok done.
[....] Setting up resolvconf...[ ok done.
[....] Configuring network interfaces...[ ok done.
[....] Cleaning up temporary files...[ ok .
[....] Setting up ALSA...[ ok done.
[info] Setting console screen modes.
etting up console font and keymap...[ ok done.
[info] Loading kernel module lp.
[info] Loading kernel module ppdev.
[info] Loading kernel module parport_pc.
[info] Loading kernel module vboxdrv.
[info] Loading kernel module fuse.
[info] Loading kernel module vhba.
[....] Setting sensors limits[ ok .
[....] Skip starting firewall: ufw (not enabled)...[ ok done.
[....] Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix[ ok .
rc sysinit logging stopped at Sun Sep 2 08:15:57 2018
rc default logging started at Sun Sep 2 08:15:57 2018
[....] Starting enhanced syslogd: rsyslogd[ ok .
[....] Starting ACPI services...[ ok .
[....] Starting anac(h)ronistic cron: anacron[ ok .
[....] Starting web server: apache2[ ok .
[....] Starting deferred execution scheduler: atd[ ok .
[....] Starting system message bus: dbus[ ok .
[....] Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon[ ok .
[....] Enabling additional executable binary formats: binfmt-support[ ok .
[....] Starting the Winbind daemon: winbind[ ok .
[....] Starting periodic command scheduler: cron[ ok .
[....] Starting Common Unix Printing System: cupsd[ ok .
[....] Starting CUPS Bonjour daemon: cups-browsed[ ok .
[....] Starting DirMngr: dirmngr[ ok .
[....] Starting mouse interface server: gpm[ ok .
[....] Starting SMP IRQ Balancer: irqbalance[ ok .
[....] Starting libvirt management daemon: libvirtd[ ok .
[....] Updating the system logo...[ ok done.
[....] Starting UPnP devices daemon: MiniSSDPd[ ok .
[....] Starting XSP 4.0 WebServer: mono-xsp4[ ok .
[....] Starting Music Player Daemon: mpd[ ok .
[....] Starting network connection manager: NetworkManager[ ok .
[....] Starting NetBIOS name server: nmbd[ ok .
Iniciando noip2.
[....] Starting NTP server: ntpd[ ok .
[....] Starting Postfix Mail Transport Agent: postfix[ ok .
[....] saned disabled; edit /etc/default/saned[ ok .
[....] Starting slim: slim[ ok .
[....] Starting SMB/CIFS daemon: smbd[ ok .
[....] Starting SNMP services:: snmpd[....] Starting OpenBSD Secure Shell server: sshd[ ok .
[....] Starting SSHGuard Server: sshguard enabling firewall[ ok .
[....] Starting TiMidity++ ALSA midi emulation...[ ok .
[....] Starting uuid generator: uuidd[ ok .
[....] Starting FTP server: vsftpd[ ok .
[....] Starting internet superserver: xinetd[ ok .
rc default logging stopped at Sun Sep 2 08:16:42 2018
This morning i purge some packages of sysvinit installed on my distro, anothers i dont use like upstart, plymouth, mdadm, cryptset or something similar.
Well i copy /etc/init.d/mpd to /etc/init.d/noip2 and i start the modifications. but one part i can't understand fine :
ok the main modification was things like :
MPDCONF=/etc/mpd.conf by NOIP2CONF=/usr/etc/no-ip2.conf
DAEMON=/usr/bin/noip2
and well the unique thing i don't understand what do is the line :
PIDFILE=$(sed -n 's/^[[:space:]]*pid_file[[:space:]]*"\?\([^"]*\)\"\?/\1/p' $MPDCONF)
because with mpd :
echo $PIDFILE
/run/mpd/pid
if i try with my modification
PIDFILE=$(sed -n 's/^[[:space:]]*pid_file[[:space:]]*"\?\([^"]*\)\"\?/\1/p' $NOIP2CONF)
echo $PIDFILE
nothing happened.
Well i try to make accord to the system. but i change at the final i just let the file with the follow content :
#!/bin/sh
### BEGIN INIT INFO
# Provides: noip2
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Should-Start: autofs $network
# Should-Stop: autofs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: NoIP
# Description: Inicia el Servicio noip2
# Para conectarse a traves de internet usando un nombre y no la IP{v4,6}
### END INIT INFO
. /lib/lsb/init-functions
PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=noip2
DESC="noip2"
DAEMON=/usr/bin/noip2
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
#PIDFILE=$(sed -n 's/^[[:space:]]*pid_file[[:space:]]*"\?\([^"]*\)\"\?/\1/p' $NOIP2CONF)
PIDFILE=$(mkdir -p /run/noip2 ; echo "$RANDOM" >> pid)
noip2_start () {
echo "Iniciando noip2."
"$DAEMON" 2>/dev/null
}
noip2_stop () {
echo -n "Finalizando noip2 : "
kill -15 $(pgrep noip2)
}
# note to self: don't call the non-standard args for this in
# {post,pre}{inst,rm} scripts since users are not forced to upgrade
# /etc/init.d/noip2 when noip2 is updated
case "$1" in
start)
noip2_start
;;
stop)
noip2_stop
;;
restart)
noip2_stop
noip2_start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 2
;;
esac
now in the /var/log/boot
Sun Sep 2 07:53:13 2018: [....] Starting Music Player Daemon: mpd^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c.
Sun Sep 2 07:53:23 2018: [....] Starting network connection manager: NetworkManager^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c.
Sun Sep 2 07:53:24 2018: [....] Starting NetBIOS name server: nmbd^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c.
Sun Sep 2 07:53:24 2018: Iniciando noip2.
Sun Sep 2 07:53:25 2018: [....] Starting NTP server: ntpd^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c.
Sun Sep 2 07:53:26 2018: [....] Starting Postfix Mail Transport Agent: postfix^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c.
during boot the another process show
[ ok ] <service>
i try to make it equal with my noip2 script, but i can't understand the PIDFILE and what do the sed in that variable.
Last edited by inukaze (2018-09-02 12:20:12)
Offline
I cant help much with the init script writing. Hopefully someone else can help.
I think the mpd script is using the sed command to generate a pid file name. I dont think you need to do that. Some scripts just use a hard-coded pid file name.
If you look at some of the other init scripts such as rsyslog or cups; they use start-stop-daemon to run and the pid file is used as a parm.
Sorry I cant be of much help here.
Offline