]> err.no Git - systemd/log
systemd
13 years agoshutdown: remove close_nointr_nofail after make_stdio call
Harald Hoyer [Tue, 19 Jul 2011 10:16:30 +0000 (12:16 +0200)]
shutdown: remove close_nointr_nofail after make_stdio call

make_stdio itsselves closes the fd already

13 years agoutil: use readdir_r() instead of readdir()
Lennart Poettering [Fri, 22 Jul 2011 02:25:25 +0000 (04:25 +0200)]
util: use readdir_r() instead of readdir()

13 years agoinstall: add new installer implementation
Lennart Poettering [Fri, 22 Jul 2011 02:21:18 +0000 (04:21 +0200)]
install: add new installer implementation

This new installer will replace the current code of "systemctl enable"
but also be available via D-Bus. It adds a couple of new features:

- Mask/Unmask calls
- Reenable call
- Preset call
- Support for enabling units temporarily (i.e. in /run/systemd instead
  of /etc/systemd)
- Enumeration of installed units
- Support for out-of-search-path units

systemctl and D-Bus are not hooked up with this yet

13 years agosystemctl: fix indenting
Lennart Poettering [Fri, 22 Jul 2011 02:20:02 +0000 (04:20 +0200)]
systemctl: fix indenting

13 years agopath-lookup: add both the configured and the fixed search paths in
Lennart Poettering [Fri, 22 Jul 2011 02:19:29 +0000 (04:19 +0200)]
path-lookup: add both the configured and the fixed search paths in

13 years agopath-lookup: make inclusion of user private units optional
Lennart Poettering [Fri, 22 Jul 2011 02:17:38 +0000 (04:17 +0200)]
path-lookup: make inclusion of user private units optional

13 years agoupdate TODO
Lennart Poettering [Mon, 18 Jul 2011 20:30:02 +0000 (22:30 +0200)]
update TODO

13 years agofix hwclock_apply_localtime_delta() to properly handle negative TZ offset
Kay Sievers [Thu, 21 Jul 2011 18:28:27 +0000 (20:28 +0200)]
fix hwclock_apply_localtime_delta() to properly handle negative TZ offset

Localtime may be a negative number, i.e. GMT-7. Fix based on a
patch from Kelly Anderson <kelly@silka.with-linux.com>.

13 years agosysctl: support multiple prefixes in a single invocation
Lennart Poettering [Fri, 15 Jul 2011 00:01:31 +0000 (02:01 +0200)]
sysctl: support multiple prefixes in a single invocation

13 years agologind: enable PowerOff/Reboot calls
Lennart Poettering [Thu, 14 Jul 2011 23:52:52 +0000 (01:52 +0200)]
logind: enable PowerOff/Reboot calls

13 years agoupdate TODO
Lennart Poettering [Thu, 14 Jul 2011 21:57:53 +0000 (23:57 +0200)]
update TODO

13 years agodistribute: src/libsystemd-*.sym
Kay Sievers [Thu, 14 Jul 2011 23:47:47 +0000 (01:47 +0200)]
distribute: src/libsystemd-*.sym

13 years agolibsystemd-daemon: support installation in --with-rootlibdir
Kay Sievers [Thu, 14 Jul 2011 23:31:06 +0000 (01:31 +0200)]
libsystemd-daemon: support installation in --with-rootlibdir

13 years agoREADME: document license
Lennart Poettering [Thu, 14 Jul 2011 21:53:53 +0000 (23:53 +0200)]
README: document license

13 years agogit: hide more files from git
Lennart Poettering [Thu, 14 Jul 2011 21:52:16 +0000 (23:52 +0200)]
git: hide more files from git

13 years agolibs: add symbol versioning for the benefit of RPM
Lennart Poettering [Thu, 14 Jul 2011 21:49:37 +0000 (23:49 +0200)]
libs: add symbol versioning for the benefit of RPM

13 years agosd-daemon: turn sd-daemon.c into a shared library
Lennart Poettering [Thu, 14 Jul 2011 21:06:31 +0000 (23:06 +0200)]
sd-daemon: turn sd-daemon.c into a shared library

13 years agouaccess: become a nop when not run on a systemd system
Lennart Poettering [Thu, 14 Jul 2011 20:51:19 +0000 (22:51 +0200)]
uaccess: become a nop when not run on a systemd system

13 years agologind: introduce libsystemd-login.so as fast path to access logind data
Lennart Poettering [Thu, 14 Jul 2011 20:50:01 +0000 (22:50 +0200)]
logind: introduce libsystemd-login.so as fast path to access logind data

13 years agosystemctl: don't try rebooting with /dev/initcl if Upstart worked
Lennart Poettering [Thu, 14 Jul 2011 16:05:33 +0000 (18:05 +0200)]
systemctl: don't try rebooting with /dev/initcl if Upstart worked

13 years agologind: fix some potentially uninitialized accesses v30
Lennart Poettering [Wed, 13 Jul 2011 21:17:05 +0000 (23:17 +0200)]
logind: fix some potentially uninitialized accesses

13 years agobuild-sys: bump release
Lennart Poettering [Wed, 13 Jul 2011 21:11:53 +0000 (23:11 +0200)]
build-sys: bump release

13 years agonspawn: compress mount table a bit
Lennart Poettering [Wed, 13 Jul 2011 20:50:59 +0000 (22:50 +0200)]
nspawn: compress mount table a bit

13 years agoman: add a couple of crosslinks
Lennart Poettering [Wed, 13 Jul 2011 20:42:21 +0000 (22:42 +0200)]
man: add a couple of crosslinks

13 years agoman: add man page for systemd-loginctl
Lennart Poettering [Wed, 13 Jul 2011 20:37:53 +0000 (22:37 +0200)]
man: add man page for systemd-loginctl

13 years agoconsolidate TODO
Lennart Poettering [Wed, 13 Jul 2011 20:05:35 +0000 (22:05 +0200)]
consolidate TODO

13 years agonspawn: always use bind mounts to make API file systems available in the container
Lennart Poettering [Wed, 13 Jul 2011 19:57:56 +0000 (21:57 +0200)]
nspawn: always use bind mounts to make API file systems available in the container

This ensures that read-only flags are never passed from the container to
the host OS.

13 years agologind: use new udev_enumerate_add_match_parent() where applicable
Lennart Poettering [Wed, 13 Jul 2011 19:49:21 +0000 (21:49 +0200)]
logind: use new udev_enumerate_add_match_parent() where applicable

13 years agologinctl: use new udev_device_has_tag() call from libudev where applicable
Lennart Poettering [Wed, 13 Jul 2011 18:11:23 +0000 (20:11 +0200)]
loginctl: use new udev_device_has_tag() call from libudev where applicable

13 years agologind: remove some unused labels
Lennart Poettering [Wed, 13 Jul 2011 18:06:27 +0000 (20:06 +0200)]
logind: remove some unused labels

13 years agoudev: actually check for existance of ID_PATH_TAG before we use it
Lennart Poettering [Wed, 13 Jul 2011 18:06:11 +0000 (20:06 +0200)]
udev: actually check for existance of ID_PATH_TAG before we use it

13 years agologinctl: implement missing kill verb
Lennart Poettering [Wed, 13 Jul 2011 17:58:35 +0000 (19:58 +0200)]
loginctl: implement missing kill verb

13 years agounit: use ESRCH as error when we don't find anybody to kill
Lennart Poettering [Wed, 13 Jul 2011 17:57:36 +0000 (19:57 +0200)]
unit: use ESRCH as error when we don't find anybody to kill

13 years agounit: accept empty defaults for kill who/mode args
Lennart Poettering [Wed, 13 Jul 2011 17:56:40 +0000 (19:56 +0200)]
unit: accept empty defaults for kill who/mode args

13 years agologinctl: implement more verbs
Lennart Poettering [Sat, 9 Jul 2011 00:58:05 +0000 (02:58 +0200)]
loginctl: implement more verbs

13 years agoseat: udev - use ID_PATH_TAG instead of 'sed' hack
Kay Sievers [Wed, 13 Jul 2011 17:45:36 +0000 (19:45 +0200)]
seat: udev - use ID_PATH_TAG instead of 'sed' hack

13 years agounit: introduce ConditionFileIsExecutable= and use it where we check for a binary...
Lennart Poettering [Tue, 12 Jul 2011 02:25:02 +0000 (04:25 +0200)]
unit: introduce ConditionFileIsExecutable= and use it where we check for a binary we'll spawn

13 years agoservice: properly handle who argument on D-Bus kill calls
Lennart Poettering [Tue, 12 Jul 2011 02:05:33 +0000 (04:05 +0200)]
service: properly handle who argument on D-Bus kill calls

13 years agotmpfiles: allow creation of named pipes with tmpfiles
Lennart Poettering [Tue, 12 Jul 2011 01:56:56 +0000 (03:56 +0200)]
tmpfiles: allow creation of named pipes with tmpfiles

13 years agoupdate TODO
Lennart Poettering [Tue, 12 Jul 2011 01:42:44 +0000 (03:42 +0200)]
update TODO

13 years agosysctl: support application of sysctl subtrees
Lennart Poettering [Tue, 12 Jul 2011 01:36:17 +0000 (03:36 +0200)]
sysctl: support application of sysctl subtrees

13 years agobuild-sys: fix copynpaste mistake
Lennart Poettering [Mon, 11 Jul 2011 23:18:48 +0000 (01:18 +0200)]
build-sys: fix copynpaste mistake

13 years agobuild-sys: remove autogenerated bus introspection files from git
Lennart Poettering [Mon, 11 Jul 2011 23:16:24 +0000 (01:16 +0200)]
build-sys: remove autogenerated bus introspection files from git

13 years agobuild-sys: fix make distcheck
Lennart Poettering [Mon, 11 Jul 2011 23:11:27 +0000 (01:11 +0200)]
build-sys: fix make distcheck

13 years agobuild-sys: add a number of missing header files to EXTRA_DIST
Lennart Poettering [Mon, 11 Jul 2011 22:47:50 +0000 (00:47 +0200)]
build-sys: add a number of missing header files to EXTRA_DIST

13 years agobuild-sys: drop AM_GNU_GETTEXT as it fights with IT_PROG_INTLTOOL
Kay Sievers [Mon, 11 Jul 2011 22:45:28 +0000 (00:45 +0200)]
build-sys: drop AM_GNU_GETTEXT as it fights with IT_PROG_INTLTOOL

  <mbiebl> kay, mezcalero: https://bugzilla.gnome.org/show_bug.cgi?id=627789
  <mezcalero> so we can drop that entirely?
  <mezcalero> kay: if you drop those two lines, does it improve things for you?
  <mbiebl> kay: but ./configure should work now
  <mbiebl> resp. autogen.sh
  <kay> mezcalero, mbiebl: autogen.sh seems a lot better without the two lines
  <kay> mezcalero: works without the 'touch' thing
  <mezcalero> kay: ok, commit please

13 years agounits: add units for boot.local/halt.local on SUSE distributions.
Frederic Crozat [Thu, 7 Jul 2011 12:56:30 +0000 (14:56 +0200)]
units: add units for boot.local/halt.local on SUSE distributions.

13 years agoshutdown: coding style fixes
Lennart Poettering [Mon, 11 Jul 2011 20:56:45 +0000 (22:56 +0200)]
shutdown: coding style fixes

13 years agoMerge remote-tracking branch 'harald/master'
Lennart Poettering [Mon, 11 Jul 2011 20:39:57 +0000 (22:39 +0200)]
Merge remote-tracking branch 'harald/master'

13 years agologind: Fix compilation without ACL
Zbigniew Jędrzejewski-Szmek [Mon, 11 Jul 2011 20:29:45 +0000 (22:29 +0200)]
logind: Fix compilation without ACL

Compilation fails if sys/acl.h is not available. The configure script
already tests for sys/acl.h presence, but the result was so far unused.
To compile without acl, stub implementations of the acl functions are
used.

13 years agoman: un-reverse IgnoreOnSnapshot description
Zbigniew Jędrzejewski-Szmek [Mon, 11 Jul 2011 20:09:41 +0000 (22:09 +0200)]
man: un-reverse IgnoreOnSnapshot description

I think that snapshots & devices are actually _not_ captured in
snapshots.

13 years agoupdate TODO
Lennart Poettering [Mon, 11 Jul 2011 19:10:48 +0000 (21:10 +0200)]
update TODO

13 years agobuild-sys: Add i18n support through intltool
Bastien Nocera [Mon, 11 Jul 2011 16:01:28 +0000 (17:01 +0100)]
build-sys: Add i18n support through intltool

And put the PolicyKit policy files up for translation.

13 years agoclarify separate-/usr message
Kay Sievers [Mon, 11 Jul 2011 00:12:42 +0000 (02:12 +0200)]
clarify separate-/usr message

Everything should be fine if /usr is mounted from initramfs.

13 years agologinctl: add missing header file
Lennart Poettering [Fri, 8 Jul 2011 22:04:27 +0000 (00:04 +0200)]
loginctl: add missing header file

13 years agosystemctl: fix --help syntax for variables
Lennart Poettering [Fri, 8 Jul 2011 19:45:59 +0000 (21:45 +0200)]
systemctl: fix --help syntax for variables

13 years agologind: don't confuse 'shared' with a session of its own
Lennart Poettering [Fri, 8 Jul 2011 19:45:44 +0000 (21:45 +0200)]
logind: don't confuse 'shared' with a session of its own

13 years agologind: fix introspection typo
Lennart Poettering [Fri, 8 Jul 2011 19:45:23 +0000 (21:45 +0200)]
logind: fix introspection typo

13 years agoacl: two tag matching is not going to be available in libudev
Lennart Poettering [Fri, 8 Jul 2011 19:44:22 +0000 (21:44 +0200)]
acl: two tag matching is not going to be available in libudev

13 years agologinctl: add various introspection functions
Lennart Poettering [Fri, 8 Jul 2011 19:39:10 +0000 (21:39 +0200)]
loginctl: add various introspection functions

13 years agoseat: only mark main input device for seat assignments
Lennart Poettering [Fri, 8 Jul 2011 19:37:17 +0000 (21:37 +0200)]
seat: only mark main input device for seat assignments

13 years agosystemctl: hide all information on --kill-mode= since it is mostly useless
Lennart Poettering [Thu, 7 Jul 2011 02:19:03 +0000 (04:19 +0200)]
systemctl: hide all information on --kill-mode= since it is mostly useless

13 years agosystemctl: use cached tty value where possible
Lennart Poettering [Thu, 7 Jul 2011 01:30:47 +0000 (03:30 +0200)]
systemctl: use cached tty value where possible

13 years agosystemctl: cache tty value before we open the pager
Lennart Poettering [Thu, 7 Jul 2011 01:30:31 +0000 (03:30 +0200)]
systemctl: cache tty value before we open the pager

13 years agologinctl: add basic implementation of loginctl for introspecting controlling sessions...
Lennart Poettering [Thu, 7 Jul 2011 01:29:56 +0000 (03:29 +0200)]
loginctl: add basic implementation of loginctl for introspecting controlling sessions/users/seats

13 years agocgls: add pager support to systemd-cgls
Lennart Poettering [Thu, 7 Jul 2011 00:34:35 +0000 (02:34 +0200)]
cgls: add pager support to systemd-cgls

13 years agopath,unit: support globbing in conditions and path units
Lennart Poettering [Thu, 7 Jul 2011 00:07:39 +0000 (02:07 +0200)]
path,unit: support globbing in conditions and path units

13 years agoupdate TODO
Lennart Poettering [Wed, 6 Jul 2011 23:18:10 +0000 (01:18 +0200)]
update TODO

13 years agomanager: merge serialization and desrialization counter into one, and increase it...
Lennart Poettering [Tue, 5 Jul 2011 22:47:39 +0000 (00:47 +0200)]
manager: merge serialization and desrialization counter into one, and increase it when reexecuting

Instead of having individual counters n_serializing and n_deserializing
have a single one n_reloading, which should be sufficient.

Set n_reloading when we are about to go down for reexecution to avoid
cgroup trimming when we free the units for reexecution.

13 years agocgroup: don't trim a cgroup we create, we might just take it over from somebody else
Lennart Poettering [Tue, 5 Jul 2011 22:14:26 +0000 (00:14 +0200)]
cgroup: don't trim a cgroup we create, we might just take it over from somebody else

13 years agoudev: tag virtio serial ports with systemd by default
Lennart Poettering [Tue, 5 Jul 2011 18:32:08 +0000 (20:32 +0200)]
udev: tag virtio serial ports with systemd by default

13 years agoupdate TODO
Lennart Poettering [Tue, 5 Jul 2011 15:27:44 +0000 (17:27 +0200)]
update TODO

13 years agoudev: improve udev rule a bit
Lennart Poettering [Tue, 5 Jul 2011 12:27:26 +0000 (14:27 +0200)]
udev: improve udev rule a bit

13 years agoservice: 'pidfile:' in SysV chkconfig header implies a real daemon
Michal Schmidt [Tue, 5 Jul 2011 08:14:12 +0000 (10:14 +0200)]
service: 'pidfile:' in SysV chkconfig header implies a real daemon

The presence of the chkconfig "pidfile:" header in the initscript is an
excellent indication that it's not a oneshot script (like iptables),
but a real daemon (like httpd).

13 years agoudev: pull in printer.target from all kinds of printers
Lennart Poettering [Tue, 5 Jul 2011 01:27:14 +0000 (03:27 +0200)]
udev: pull in printer.target from all kinds of printers

13 years agoutil: explicitly turn of O_CLOEXEC for stdin/stdout/stderr
Lennart Poettering [Sun, 3 Jul 2011 21:20:56 +0000 (23:20 +0200)]
util: explicitly turn of O_CLOEXEC for stdin/stdout/stderr

13 years agoadd a few O_CLOEXEC where missing
Lennart Poettering [Sun, 3 Jul 2011 21:20:39 +0000 (23:20 +0200)]
add a few O_CLOEXEC where missing

13 years agologind: write rules files atomically
Lennart Poettering [Sun, 3 Jul 2011 21:19:55 +0000 (23:19 +0200)]
logind: write rules files atomically

13 years agoupdate todo
Lennart Poettering [Sun, 3 Jul 2011 14:09:56 +0000 (16:09 +0200)]
update todo

13 years agopassword-agent: actually really don't access unallocated memory
Lennart Poettering [Mon, 4 Jul 2011 17:06:32 +0000 (19:06 +0200)]
password-agent: actually really don't access unallocated memory

Fix for 9726f9ff11fa7b94dceed2972cd2453a08b9ee6a

13 years agopassword-agent: make sure not to access unallocated memory
Lennart Poettering [Mon, 4 Jul 2011 16:59:54 +0000 (18:59 +0200)]
password-agent: make sure not to access unallocated memory

Tracked down by Frederic Crozat

13 years agoshutdown: pivot_root to a tmpfs directory to properly umount root
Harald Hoyer [Thu, 5 May 2011 10:29:44 +0000 (12:29 +0200)]
shutdown: pivot_root to a tmpfs directory to properly umount root

check for /run/initramfs/shutdown
mount bind all needed dirs to /run/initramfs
pivot_root to /run/initramfs
execute /run/initramfs/shutdown

13 years agoumount: log failed umounts only once at the end
Harald Hoyer [Fri, 27 May 2011 08:59:45 +0000 (10:59 +0200)]
umount: log failed umounts only once at the end

13 years agoumount: umount, until all umounts failed
Harald Hoyer [Thu, 5 May 2011 10:26:31 +0000 (12:26 +0200)]
umount: umount, until all umounts failed

13 years agoumount: log_info about what we unmounted
Harald Hoyer [Fri, 20 May 2011 14:26:00 +0000 (16:26 +0200)]
umount: log_info about what we unmounted

13 years agosystemadm: report GLib.Error only to stderr
Michal Schmidt [Sat, 2 Jul 2011 23:47:21 +0000 (01:47 +0200)]
systemadm: report GLib.Error only to stderr

When a GLib.Error happens, it is likely that showing a message box would fail
too.

https://bugzilla.redhat.com/show_bug.cgi?id=716663

13 years agoshutdown: print the standard wall message even when the user provided one
Michal Schmidt [Sat, 2 Jul 2011 21:40:42 +0000 (23:40 +0200)]
shutdown: print the standard wall message even when the user provided one

Print the user-provided wall message in addition to the standard one, not
instead of it.

Related to: https://bugzilla.redhat.com/show_bug.cgi?id=624149

13 years agoshutdown: respect the dry run option '-k'
Michal Schmidt [Sat, 2 Jul 2011 21:09:59 +0000 (23:09 +0200)]
shutdown: respect the dry run option '-k'

Don't do the actual power-off/reboot when '-k' is passed to shutdown.

Related to: https://bugzilla.redhat.com/show_bug.cgi?id=624149

13 years agoshutdown: accept minutes argument without '+'
Michal Schmidt [Sat, 2 Jul 2011 18:41:36 +0000 (20:41 +0200)]
shutdown: accept minutes argument without '+'

Both SysVinit's and upstart's shutdown commands accept the number of
minutes with or without the plus sign.
'shutdown -h 1' works in RHEL 5, Fedora 14, Debian 6.
Let's be compatible.

https://bugzilla.redhat.com/show_bug.cgi?id=708886

13 years agomanager: consider the active job when merging
Michal Schmidt [Sat, 2 Jul 2011 12:52:52 +0000 (14:52 +0200)]
manager: consider the active job when merging

In some cases systemd forgets to start enabled services, e.g. in this scenario:
1. The job "sendmail.service/start" is installed.
2. Before systemd proceeds with this job, a process requests a reload of
   sendmail. The job "sendmail.service/reload" is enqueued.
3. The original job is silently discarded. The service is not started.
   The reload job proceeds by doing nothing.

The fix is to allow merging transaction jobs with the active job.
With the fix the resulting merged job "sendmail.service/reload-or-start" is
installed and the service works as expected.

https://bugzilla.redhat.com/show_bug.cgi?id=633774

13 years agotmpfiles: don't exit with an error code if we cannot access all files
Lennart Poettering [Fri, 1 Jul 2011 23:44:49 +0000 (01:44 +0200)]
tmpfiles: don't exit with an error code if we cannot access all files

This is just to avoid confusion if people use stuff like FUSE file
systems or SELinux which might disallow access to files even if tmpfiles
is running as root.

We still log away if we cannot access a file, but we do not return a
failure exit code in the end.

13 years agounits: enable dev-hugepages.automount and dev-mqueue.automount only when enabled...
Lennart Poettering [Fri, 1 Jul 2011 23:00:00 +0000 (01:00 +0200)]
units: enable dev-hugepages.automount and dev-mqueue.automount only when enabled in kernel

13 years agoumount: ignore missing /proc/swaps
Michael Olbrich [Tue, 28 Jun 2011 07:30:08 +0000 (09:30 +0200)]
umount: ignore missing /proc/swaps

/proc/swaps does not exist when swap is disabled in the kernel.
Just report an empty list of mountpoints to unmount in this case.

13 years agoconfigure: Add --enable-plymouth option
Henry Gebhardt [Mon, 27 Jun 2011 23:49:55 +0000 (01:49 +0200)]
configure: Add --enable-plymouth option

As in the bug[1] it would be nice to configure plymouth support
independently of the distro. This patch adds a "--enable-plymouth" and
"--disable-plymouth" option to the configure script to overwrite the
distro specific default.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=38460

13 years agomanager: don't even think of enumerating sysv services in user instances
Lennart Poettering [Fri, 1 Jul 2011 21:53:44 +0000 (23:53 +0200)]
manager: don't even think of enumerating sysv services in user instances

13 years agonspawn: better use setresuid() instead of setreuid()
Lennart Poettering [Fri, 1 Jul 2011 21:53:14 +0000 (23:53 +0200)]
nspawn: better use setresuid() instead of setreuid()

13 years agonspawn: spawn shell under specified --user
Michal Vyskocil [Wed, 29 Jun 2011 12:22:46 +0000 (14:22 +0200)]
nspawn: spawn shell under specified --user

Add -u/--user option, which changes the effective and real user and
group id to the new value. The user must exists in the chroot, otherwise
it will fail. Both username and user id are accepted. The user home is
created as well.

It also setup HOME, USER, LOGNAME and SHELL variables .

13 years agonspawn: Move the get_user_creds from execute.c to utils.c for later usage in nspawn.c.
Michal Vyskocil [Fri, 1 Jul 2011 21:49:56 +0000 (23:49 +0200)]
nspawn: Move the get_user_creds from execute.c to utils.c for later usage in nspawn.c.

13 years agologind: temporarily hack right user bus address into unit file
Lennart Poettering [Fri, 1 Jul 2011 20:36:15 +0000 (22:36 +0200)]
logind: temporarily hack right user bus address into unit file

13 years agolog: log to syslog unless connected to a tty in user mode
Lennart Poettering [Fri, 1 Jul 2011 20:35:34 +0000 (22:35 +0200)]
log: log to syslog unless connected to a tty in user mode