Commit graph

89 commits

Author SHA1 Message Date
Denis Osvald
d9a358d562 procd: fix default timeout for reload trigger actions
Default trigger action timeout was added to procd.sh in commit f88e3a4c0
(procd: add default timeout for reload trigger actions)
However, the timeout value was not placed under the correct JSON-script
array nesting level and thus did not apply.

To fix this and make the timeout actually apply to the reload triggers,
we place it in the correct scope, that is the per-trigger array.

Fixes: f88e3a4c0a
Signed-off-by: Denis Osvald <denis.osvald@sartura.hr>
2017-02-15 09:33:13 +01:00
Bastian Bittorf
b54cbad6ef procd: update procd.sh to disallow signal-numbers, enforce signal-names
A given signal-name is now converted to the corresonding number. In general
it's good style to use names (readability) and it's more portable: signal
numbers can be architecture-dependent, so we are more safe giving names.

A real world example is signal 10, which is BUS on ramips and USR1 on PPC.

All users of 'procd_send_signal' must change their code to reflect this.

Signed-off-by: Bastian Bittorf <bb@npl.de>
2017-01-26 18:07:37 +01:00
Felix Fietkau
4d8da82c29 procd: add support for overriding the tar sysupgrade board name
Useful for providing images that work for multiple devices

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-11 13:40:36 +01:00
Hans Dedecker
bbe825c74d procd: update procd.sh to support sending kill signal to a service
Add procd_send_signal which allows to send an optional specified
kill signal to one specified  or all instances of a given service.
By default SIGHUP is sent if no signal is specified

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2016-12-20 09:35:54 +01:00
Jo-Philipp Wich
b22a20af45 procd: add support for service signals
Update procd to latest HEAD in order to introduce support for services signals:

- Adds a new service.signal ubus call to send a kill() signal to one or all
  running instances of a given service

- Adds a new "reload_signal" property which allows service init scripts to
  request procd to send a specific kill() signal on reload, instead of
  stopping and restarting running processes

Also fixes some potential memory leaks reported by cppcheck and an environment
variable corruption in the trace command.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-14 01:14:08 +01:00
Pierre Lebleu
6bb11d52f3 procd: Allow initscripts to start one daemon instance at a time
Signed-off-by: Pierre Lebleu <pierre.lebleu@technicolor.com>
2016-10-18 08:53:38 +02:00
Mathias Kresin
3004298e62 sysupgrade: unmount filesystems before reboot
sysupgrade immediately reboots after flashing an image and doesn't
allow to unmount filesystems. At least in case the image used for
sysupgrade is stored on a FAT formatted usb flash drive, the following
warning is printed during the next mount of the flash drive:

FAT-fs (sda1): Volume was not properly unmounted. Some data may be
corrupt. Please run fsck.

Although a data corruption during read operations is unlikely, there is
no need to scare the users.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-08-04 18:19:46 +02:00
Felix Fietkau
f88e3a4c0a procd: add default timeout for reload trigger actions
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-29 16:41:09 +02:00
Felix Fietkau
8891d941e0 procd: rework trigger handling
Open/close triggers array around service_triggers call to make using
multiple triggers easier to deal with.
The API was quite confusing, because some functions contained implicit
trigger open/close calls and some didn't.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-29 16:41:08 +02:00
neheb
8a83ffbefd procd: Set /dev/kmsg to 600
Small cleanup. I initially though /dev/kmsg was used for dmsg(and journald
on desktops) but this seems not to be the case. dmsg is still accessible
as non-root(gives output) which begs the question what does this do? Some
googling reveals that permissions are set to 600 for some embedded systems
while 644 for others. I can't find any justification for the latter. Might
as well err on the side of caution.

Signed-off by: Rosen Penev <rosenp@gmail.com>
2016-07-02 10:16:18 +02:00
John Crispin
9597675d8e procd: change /dev/{gpio,hvc*} perms to 0600
Signed-off-by: John Crispin <john@phrozen.org>
2016-06-30 22:48:39 +02:00
neheb
c6cef6dde7 procd: adjust /dev entries to desktop distro defaults
This changes the default permissions for /dev entries to be more similar to
a desktop distro. Taken from the defaults of Arch Linux and Ubuntu. Also
changed some that were nonsensical. For example, all 660 permissions on
desktop distros were of the form root:x where x is something other than
root. As such, 660 is useless for LEDE where the specific group is missing.
audio seems to be the only group that isn't.

Signed-off by: Rosen Penev <rosenp@gmail.com>
2016-06-30 22:48:39 +02:00
John Crispin
163cc22643 procd: properly set /dev/snd permission and group
Signed-off-by: John Crispin <john@phrozen.org>
2016-06-20 11:48:02 +02:00
John Crispin
7cc4fa1ae1 procd: fix file permissions of /dev/tty* nodes
Signed-off-by: John Crispin <john@phrozen.org>
2016-06-06 14:58:11 +02:00
John Crispin
b756788cc4 procd: fix respawn related warning
WARNING: Variable 'respawn' does not exist or is not an array/object

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 48996
2016-03-10 20:15:59 +00:00
John Crispin
48e6ccc4e1 procd: support pidfile writing.
procd from revision b12bb150ed38a4409bef5127c77b060ee616b860 supports
writing a pidfile.  This adds support for setting that parameter with
standard init script hooks:

   procd_set_param pidfile /var/run/someprocess.pid

Signed-off-by: Karl Palsson <karlp@etactica.com>

SVN-Revision: 48984
2016-03-10 19:11:17 +00:00
John Crispin
d98870feda procd: Allow to configure default respawn retry count
Extend /etc/config/system with a parameter to set the
default respawn retry for procd launched services that
have respawn enabled.

	config service
        	option respawn_retry -1

All services that don't specify specific respawn parameters
will get their defaults added by procd.sh. If respawn_retry
is specified in /etc/config/system the default retry limit
will be set to this value by procd.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>

SVN-Revision: 48915
2016-03-04 08:33:36 +00:00
John Crispin
4f3c1e7793 procd: hotplug.json: allow passing hotplug events from all subsystems
There are time that programs need to be notified of events from
subsystems that are not enumerated in the .json definition, e.g. QEMU
guest agent by default requires /dev/virtio-ports/org.qemu.guest_agent.0
which is a symlink to /dev/vportMpN from virtio-ports subsystem.

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

SVN-Revision: 48799
2016-02-26 08:35:43 +00:00
John Crispin
82a8f5fdaa hotplug-preinit: remove superfluous and
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>

SVN-Revision: 48795
2016-02-26 08:35:32 +00:00
John Crispin
ff7f5eb13d procd: emit events for sound subsystem
Useful e.g. for plugable USB-soundcards.
With this change an event/hotplug-call looks like:

ACTION: add DEVNAME: snd/timer DEVPATH: /devices/virtual/sound/timer SUBSYSTEM: sound
ACTION: add DEVNAME:  DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0 SUBSYSTEM: sound
ACTION: add DEVNAME: snd/controlC0 DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0/controlC0 SUBSYSTEM: sound
ACTION: add DEVNAME: snd/pcmC0D0p DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0/pcmC0D0p SUBSYSTEM: sound
ACTION: add DEVNAME: snd/pcmC0D0c DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0/pcmC0D0c SUBSYSTEM: sound
ACTION: add DEVNAME: dsp DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0/dsp SUBSYSTEM: sound
ACTION: add DEVNAME: audio DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0/audio SUBSYSTEM: sound
ACTION: add DEVNAME: mixer DEVPATH: /devices/platform/ehci-platform/usb1/1-1/1-1:1.0/sound/card0/mixer SUBSYSTEM: sound

This fixes #21466.

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 48366
2016-01-19 15:31:35 +00:00
John Crispin
f99c61a94a procd: add 'platform_nand_pre_upgrade'
Add 'platform_nand_pre_upgrade' callback to allow platform specific
preparation right before flashinng, when already in ramdisk.

Example uses might be setting correct values for CI_{KERNPART,UBIPART}.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>

SVN-Revision: 47879
2015-12-12 07:37:45 +00:00
John Crispin
32b37600b9 procd: update procd.sh to support new ujail options
Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>

SVN-Revision: 47862
2015-12-11 15:08:19 +00:00
Rafał Miłecki
0d5915d2fe procd: drop nand_upgrade_stage1 from sysupgrade_pre_upgrade hooks
Now we have all targets using platform_pre_upgrade (and calling
nand_do_upgrade directly) we don't need nand_upgrade_stage1 to be in
sysupgrade_pre_upgrade hooks anymore.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 47489
2015-11-17 07:26:12 +00:00
Rafał Miłecki
a24f7305cc procd: make nand_do_platform_check check image only
Recently all targets have been updated to call nand_do_upgrade directly.
It's not needed anymore to leave a magic /tmp/sysupgrade-nand-path mark
during image check.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 47079
2015-10-02 06:03:13 +00:00
Rafał Miłecki
26845a4715 procd: switch buttons to the new "button" hotplug handler
This allows requesting "timeout" ACTION in script by returning a
positive value.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46580
2015-08-10 22:48:07 +00:00
Felix Fietkau
16fa80a8f1 procd: correct the order of respawn params in the comments.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

SVN-Revision: 45955
2015-06-14 17:41:07 +00:00
John Crispin
5fe5aeaa72 procd: work around a event race
there is a conceptual design flaw in our interface events. workaround this by
disabling duplicate message supression in procd. we need to fix this properly
for the next release

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 45883
2015-06-03 13:59:08 +00:00
John Crispin
2b9ac1e0af procd: add a 10 second delay to the interface triggers
this is an ugly hack that will be removed when the netifd maintainers
have time to look at the problem.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 45876
2015-06-02 12:03:20 +00:00
John Crispin
a43bcc980e Removed reference to imaginary procd_add_interface_reload in procd.sh
The last line of procd.sh has a reference to procd_add_interface_reload. procd_add_interface_reload
doesn't seem to exist. I've removed the reference of it to minimize confusion.

Signed-off-by: Eric Schultz <eschultz@prplfoundation.org>

SVN-Revision: 45487
2015-04-18 10:19:02 +00:00
John Crispin
093c341473 procd: add helper for starting NAND sysupgrade
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45339
2015-04-09 14:33:11 +00:00
John Crispin
e85b93d9b8 procd: add jail support
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 45010
2015-03-26 10:58:25 +00:00
Jo-Philipp Wich
fd670d2756 procd: add support for relaying daemon stdio to syslog
Procd enabled init scripts can now specify:

  procd_set_param stdout 1
  procd_set_param stderr 1

... to relay their respective standard IO streams to the system log.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44547
2015-02-26 13:42:47 +00:00
John Crispin
19a6f3dd11 procd: more nand takeover fixes
if the initramfs kernel and payload were flashed in one block, the payload might not be at the start of the ubi partition due to bad blocks inside the kernel partition.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43513
2014-12-03 20:22:37 +00:00
John Crispin
68909fb081 procd: firstboot nand/ubi takeover support
it is now possible to flash a initramfs kernel and a sysupgrade tar file inside the ubi partition. on first boot, the takeover script will find the tar file, extract and finally sysupgrade it. this allows us to flash owrt/ubi images in a 2 phase setup using ODM webuis that are not ubi aware. this is needed by some mediatek and brokencom devices.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43505
2014-12-03 14:32:32 +00:00
Rafał Miłecki
15355dd212 procd: fix typo in nand.sh s/TRX/TAR/
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43423
2014-11-28 19:13:24 +00:00
John Crispin
db69761f94 procd: fix/clean some conditions in nand.sh
1) nand_upgrade_tar: use a simpler condition that matches if () { }
   logic and fix check of $kernel_length variable
2) nand_do_upgrade_stage2: use case, otherwise one could believe we
   always call nand_upgrade_tar

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43373
2014-11-24 19:14:29 +00:00
John Crispin
19c18eba93 procd: document nand.sh a bit
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43372
2014-11-24 19:14:17 +00:00
John Crispin
20940138ac scripts: fix wrong usage of '==' operator
[base-files] shell-scripting: fix wrong usage of '==' operator

normally the '==' is used for invoking a regex parser and is a bashism.
all of the fixes just want to compare a string. the used busybox-ash
will silently "ignore" this mistake, but make it portable/clean at least.

this patch does not change the behavior/logic of the scripts.

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 42911
2014-10-14 12:21:11 +00:00
Felix Fietkau
4c490c79b2 procd: fix initial nand sysupgrade
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42884
2014-10-12 15:50:15 +00:00
Felix Fietkau
41363b1ecb procd: fix parsing of the has_env parameter
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42883
2014-10-12 15:50:01 +00:00
John Crispin
e28c5f86f3 procd: handle hotplug events for the usbmisc subsystem
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42831
2014-10-08 08:00:01 +00:00
John Crispin
f81614594f procd: update to latest git
add support for starting services as !root

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42471
2014-09-11 12:28:00 +00:00
Felix Fietkau
2dabf3a775 procd: allow adding empty strings to arrays
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42456
2014-09-10 12:56:19 +00:00
John Crispin
c23e0ed691 procd: run the mdns register outside the sub shell container
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42327
2014-08-29 18:36:29 +00:00
John Crispin
b0d9dcf84d procd: update to latest git HEAD
this adds a interafce.update trigger and mdns service registration helpers

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42324
2014-08-29 18:16:24 +00:00
Felix Fietkau
caeb675a46 procd: check output of "uci show" instead of raw config files in order to track uncommitted changes
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 41865
2014-07-29 02:12:24 +00:00
Imre Kaloz
ecb68ba6b4 allow overriding the kernel partition's name
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 41646
2014-07-14 14:53:15 +00:00
Imre Kaloz
2ddcf5dd8a we already have a get_magic_long() in common.sh for sysupgrade, don't break it
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 41628
2014-07-13 20:51:17 +00:00
John Crispin
72efa88b64 procd: correctly identify ubifs in tar file
A missing path prevents the rootfs type contained in a SysupgradeNAND
tar file from being determined correctly.

This fixes it, and also corrects a minor spelling mistake.

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>

SVN-Revision: 41564
2014-07-10 19:16:31 +00:00
Felix Fietkau
5aef137f9e procd: add a shell helper function to emit a config.change event
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 41482
2014-07-02 19:18:20 +00:00