Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Fwd: sshfs crash with zsh
- X-seq: zsh-users 26018
- From: Phil Pennock <zsh-workers+phil.pennock@xxxxxxxxxxxx>
- To: rdong1989@xxxxxxxxx
- Subject: Re: Fwd: sshfs crash with zsh
- Date: Wed, 12 Aug 2020 11:55:52 -0400
- Archived-at: <https://zsh.org/users/26018>
- Archived-at: <http://www.zsh.org/sympa/arcsearch_id/zsh-users/2020-08/20200812155552.GA77916%40fullerene.field.pennock-tech.net>
- Authentication-results: zsh.org; iprev=pass (mx.spodhuis.org) smtp.remote-ip=94.142.241.89; dkim=pass header.d=spodhuis.org header.s=d202008 header.a=rsa-sha256
- Cc: zsh-user <zsh-users@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=spodhuis.org; s=d202008; h=In-Reply-To:Content-Type:MIME-Version:References :Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding :Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=WUJeddsVKlcb6BudH3OGqXQeI1IUBWZOD6VNw8z/eHw=; b=Q5QDbv80IZjFL8Eo2IGJwi6khd WOGPVoyKxQJQTgcqiwsllmxR34Os2EZP0UL1ABrUC3X1sSfEKBOLrrJFM1NV8jeo23h9CCD+jt/Kj QGTmmbuAN36QT0dfeTbf0mdNpPCDb/uypRg/9R32mppq2IoXsv0oS6myZ8L4YpfOSRiELB+Tan31H 1QW680UB9yeAcXUoP+HgUxpMSfZfn3uMH4huU/JUb7Lilc6O2nO/sUP3OOEq5T02xIltHLg6mD56j LXLVFfD2b4nVEMiWf2YEDOvw3fT362YxApmp60b3mCujSqixXnUW/6eRjrP4Nr+GCUF793dScNCUO wtwZebnQ==;
- Dkim-signature: v=1; a=ed25519-sha256; q=dns/txt; c=relaxed/relaxed; d=spodhuis.org; s=d202008e2; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=WUJeddsVKlcb6BudH3OGqXQeI1IUBWZOD6VNw8z/eHw=; b=QcasDt6ElLNrn8uQV8mhlLC7+ HV9/d0LAzPpvdisqUxFiLN6OGx63ex5qdO3tfY1SLmblgHFcjn4FCWiqVGQAw==;
- In-reply-to: <1779408280.1081846.1597227236848@mail2.virginmedia.com>
- List-archive: <http://www.zsh.org/sympa/arc/zsh-users>
- List-help: <mailto:sympa@zsh.org?subject=help>
- List-id: <zsh-users.zsh.org>
- List-owner: <mailto:zsh-users-request@zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- List-subscribe: <mailto:sympa@zsh.org?subject=subscribe%20zsh-users>
- List-unsubscribe: <mailto:sympa@zsh.org?subject=unsubscribe%20zsh-users>
- Openpgp: url=https://www.security.spodhuis.org/PGP/keys/keys-2013rsa-2020cv25519.asc
- References: <CAAg1DCMTC7tk-uTN0Twvj3pGeJRz_-3mpL6m-YrO-5cMXjsbow@mail.gmail.com> <1779408280.1081846.1597227236848@mail2.virginmedia.com>
- Sender: zsh-users-request@xxxxxxx
On 2020-08-12 at 01:25, Rui Dong wrote:
> I am a fan of zsh, and used it for many years. Recently I found when I
> configure the server with zsh, I could not mount the disk with sshfs. If I
> comment the "exec /bin/zsh --login" out, sshfs works again. Could you
> please help with this?
It sounds like you're trying to change your shell in user configuration
files without changing the login user's shell in the system records.
And then you're doing this in a configuration file used for all logins,
even non-interactive ones.
So when some other command tries to log in, your shell switch is
happening and discarding the actual commands to be run.
You probably want to use the `chsh` command to change the shell instead.
Or `vipw` or whatever else changes the shell in the `/etc/passwd` file:
the last field on the line for your user specifies the shell.
If you _have_ to use configuration files, then make sure that you only
change shells, or run any command which produces output to stdout or
stderr, if the shell is interactive.
How you do that depends upon the shell which is being used, and which
configuration file you edit. Check the manual-page for guidance on
which file to be edited.
If one configuration file is used for both interactive and
non-interactive use, and there's no other file you can use, then you can
use conditional logic to wrap around the exec and only call that when
interactive. The syntax depends upon the shell (csh, bash, whatever).
There are two traditional approaches for "what to test":
1. You can look at $PS1, as long as nothing is polluting the environment
by exporting it: PS1 will only be set by shells when the shell is
interactive, because this is the main variable used to define what
your command prompt looks like. But sloppy practices (exporting PS1)
will ruin this.
2. The shell might have a variable which lists which options are in
effect, and you can check for the interactive option in that. For
instance, with the bash shell, you might check for `i` in `$-`:
if [[ $- == *i* ]]; then
exec /bin/zsh --login
fi
More than that, we can't help you with, as there are too few details in
your mail about your setup.
Regards,
-Phil
Messages sorted by:
Reverse Date,
Date,
Thread,
Author