私はRaspberry Pi 3bのRaspbian Jessieで成功しています
% http://askubuntu.com/a/227513/25388
masi@raspberrypi:~ $ Sudo locale-gen en_US en_US.UTF-8
masi@raspberrypi:~ $ Sudo dpkg-reconfigure locales
走る Sudo deluser pi
しかし、私は得る
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 929
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
ポリロケールの問題が失敗した場合も修正を試みました
for y in $(locale | cut -d '=' -f 2| sort |uniq );do Sudo locale-gen $y; done
私がやります
masi@raspberrypi:~ $ ps -fp 929
UID PID PPID C STIME TTY TIME CMD
pi 929 1 0 08:54 ? 00:00:00 /usr/lib/menu-cache/menu-cached /tmp/.
私がやります
masi@raspberrypi:~ $ Sudo kill 929
masi@raspberrypi:~ $ Sudo deluser pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 1174
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
masi@raspberrypi:~ $ Sudo deluser -remove-home pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Looking for files to backup/remove ...
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 1174
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
masi@raspberrypi:~ $
私は今プロセスID 1174
でもまったく同じ出力が得られますが、新しいプロセスID 1202
。私がやります Sudo killall -u pi -m .
ですがUsage: killall [OPTION]... [--] NAME...
私がやります
masi@raspberrypi:~ $ Sudo pkill -u pi
masi@raspberrypi:~ $ Sudo deluser pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
...
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 3422
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
私がやります
masi@raspberrypi:~ $ ps -u pi
PID TTY TIME CMD
3422 tty1 00:00:00 bash
masi@raspberrypi:~ $ Sudo kill 3422
masi@raspberrypi:~ $ Sudo deluser pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 3496
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
私がやります
masi@raspberrypi:~ $ who
pi tty1 Jun 4 09:38
masi pts/0 Jun 4 09:06 (masi)
私がやります
masi@raspberrypi:~ $ Sudo skill -KILL -u pi
masi@raspberrypi:~ $ Sudo deluser pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 3496
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
私はスティーブンの提案をしますが
masi@raspberrypi:~ $ Sudo service lightdm stop
masi@raspberrypi:~ $ Sudo deluser pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
userdel: user pi is currently used by process 3496
/usr/sbin/deluser: `/usr/sbin/userdel pi' returned error code 8. Exiting.
コマンドの2番目の反復には、コマンドの最初のステップでロケールを変更しようとする試みが含まれていましたが、やはり失敗しました。
私がやります
masi@raspberrypi:~ $ ps -ft tty1
UID PID PPID C STIME TTY TIME CMD
root 3491 1 0 09:38 tty1 00:00:00 /bin/login -f
pi 3507 3491 0 09:38 tty1 00:00:00 -bash
私がやります Sudo vim /etc/inittab
ですが、ファイルは空です。私がやります masi@raspberrypi:~ $ Sudo grep -r "login -f" /etc
が出力として何もありません。
私がやります
masi@raspberrypi:~ $ Sudo grep -r autologin /etc
/etc/lightdm/lightdm.conf:# pam-autologin-service = PAM service to use for autologin
/etc/lightdm/lightdm.conf:# autologin-guest = True to log in as guest by default
/etc/lightdm/lightdm.conf:# autologin-user = User to log in with by default (overrides autologin-guest)
/etc/lightdm/lightdm.conf:# autologin-user-timeout = Number of seconds to wait before loading default user
/etc/lightdm/lightdm.conf:# autologin-session = Session to load for automatic login (overrides user-session)
/etc/lightdm/lightdm.conf:# autologin-in-background = True if autologin session should not be immediately activated
/etc/lightdm/lightdm.conf:#pam-autologin-service=lightdm-autologin
/etc/lightdm/lightdm.conf:#autologin-guest=false
/etc/lightdm/lightdm.conf:autologin-user=pi
/etc/lightdm/lightdm.conf:#autologin-user-timeout=0
/etc/lightdm/lightdm.conf:#autologin-in-background=false
/etc/lightdm/lightdm.conf:#autologin-session=UNIMPLEMENTED
/etc/systemd/system/[email protected]:ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
の内容 /etc/lightdm/lightdm.conf
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-load-seats = True to automatically set up multi-seat configuration from logind
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
#logind-load-seats=false
#logind-check-graphical=false
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=/usr/share/lightdm/greeters:/usr/share/xgreeters
#
# Seat defaults
#
# type = Seat type (xlocal, xremote)
# xdg-seat = Seat name to set pam_systemd XDG_SEAT variable and name to pass to X server
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xserver-layout = Layout to pass to X server
# xserver-config = Config file to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
# unity-compositor-timeout = Number of seconds to wait for compositor to start
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[SeatDefaults]
#type=xlocal
#xdg-seat=seat0
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xserver-layout=
#xserver-config=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
#greeter-session=example-gtk-gnome
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
#allow-user-switching=true
#allow-guest=true
#guest-session=
#session-wrapper=lightdm-session
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
autologin-user=pi
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=UNIMPLEMENTED
#exit-on-failure=false
#
# Seat configuration
#
# Each seat must start with "Seat:".
# Uses settings from [SeatDefaults], any of these can be overriden by setting them in this section.
#
#[Seat:0]
#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
# it can be a Word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#key=
#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#width=1024
#height=768
#depth=8
私がやります
masi@raspberrypi:~ $ Sudo systemctl disable autologin@tty1
masi@raspberrypi:~ $ ps -fu pi
UID PID PPID C STIME TTY TIME CMD
pi 3496 1 0 09:38 ? 00:00:00 /lib/systemd/systemd --user
pi 3502 3496 0 09:38 ? 00:00:00 (sd-pam)
pi 3507 3491 0 09:38 tty1 00:00:00 -bash
masi@raspberrypi:~ $ Sudo kill 3496 3502 3507
masi@raspberrypi:~ $ ps -fu pi
UID PID PPID C STIME TTY TIME CMD
pi 7062 1 1 21:46 ? 00:00:00 /lib/systemd/systemd --user
pi 7068 7062 0 21:46 ? 00:00:00 (sd-pam)
pi 7073 7056 6 21:46 tty1 00:00:00 -bash
ファイル /etc/systemd/system/[email protected]
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
After=systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
# On systems without virtual consoles, don't start any getty. Note
# that serial gettys are covered by [email protected], not this
# unit.
ConditionPathExists=/dev/tty0
[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
[Install]
WantedBy=getty.target
DefaultInstance=tty1
私がやります
masi@raspberrypi:~ $ Sudo systemctl stop autologin@tty1
masi@raspberrypi:~ $ ps -fu pi
UID PID PPID C STIME TTY TIME CMD
masi@raspberrypi:~ $ Sudo deluser pi
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_PAPER = "fi_FI.UTF-8",
LC_ADDRESS = "fi_FI.UTF-8",
LC_MONETARY = "fi_FI.UTF-8",
LC_NUMERIC = "fi_FI.UTF-8",
LC_TELEPHONE = "fi_FI.UTF-8",
LC_IDENTIFICATION = "fi_FI.UTF-8",
LC_MEASUREMENT = "fi_FI.UTF-8",
LC_TIME = "fi_FI.UTF-8",
LC_NAME = "fi_FI.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
Perl: warning: Falling back to the standard locale ("C").
Removing user `pi' ...
Warning: group `pi' has no more members.
Done.
pi
に新しいプロセスを作成します。どうすればこれを防ぐことができますか?行う
masi@raspberrypi:~ $ Sudo systemctl stop autologin@tty1
masi@raspberrypi:~ $ ps -fu pi
UID PID PPID C STIME TTY TIME CMD
masi@raspberrypi:~ $ Sudo deluser pi
...
masi@raspberrypi:~ & Sudo vim /etc/passwd
... pi no longer here!
masi@raspberrypi:~ & Sudo deluser -remove-home pi
locale
問題の解決策はスレッド here にあります。
置換autologin-user=pi
とautologin-user=masi
in /etc/lightdm/lightdm.conf
。
piユーザーを正常に削除するにはどうすればよいですか?
pi
ユーザーがtty1
にログインしています。削除する前にユーザーをログアウトする必要があります。 (menu-cached
プロセスはLXDEデスクトップ環境で使用されます。ユーザーpi
に対して他のプロセスが実行されている可能性があります。)
ユーザーをログアウトするためのGUIにアクセスできない場合(つまり、Raspberry Piにリモートでアクセスしている場合)、おそらく最も安全な方法は、デスクトップマネージャーを停止することです。
Sudo service lightdm stop
(デフォルトのLXDEを使用している場合)。これにより、pi
のすべてのプロセスが強制終了されます。
また、自動ログインを無効にする必要があります(login -f
)。
古いスタイルのinittab
がある場合は、/etc/inittab
ファイルを編集し、次のような行を置き換えます
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
(重要な部分は/bin/login -f pi tty1
です)
1:2345:respawn:/sbin/getty 115200 tty1
次に、実行してinit
をリロードします
Sudo telinit q
autologin
サービスなどの自動ログイン用のsystemdユニットを使用して、サービスを無効にします。
Sudo systemctl --now disable autologin@tty1
これにより、ユニットが停止し、systemd設定がリロードされます。
この時点で、pi
にまだ実行中のプロセスがある場合(ps -fu pi
で示されているように)、それらを強制終了します。これ以上、再起動することはできません。
私は走ったSudo raspi-config
コマンドラインで、コマンドラインオプションとして選択されたブートオプションの下。再起動後、ユーザーpiを削除できました(Raspbianの新規インストール後に削除したことに注意してください)。