/etc/default/init LANG Setting Not Working


 
Thread Tools Search this Thread
Operating Systems Solaris /etc/default/init LANG Setting Not Working
# 1  
Old 11-16-2015
/etc/default/init LANG Setting Not Working

Hey guys,

I'm setting up a new server(Fujitsu M10-4 / Solaris 10 1/13) to move our app/DB and I'm having trouble figuring out why my LANG setting is not taking effect. I'm trying to set LANG=C in the /etc/default/init file which should make it the default system wide from what I gather. However it is always set to "en_US.UTF-8" when I log in. I've rebooted the server and removed/re-added the entry just to be sure, but no luck.

I can set the LANG setting to C in my shell manually, but it is not persistent when I switch over to bash or exit out. I've checked the /etc/profile, and the user profiles and I'm not finding anything that would be overriding the setting.

I suppose I can just set it in /etc/profile and the root profiles and call it a day, but I'd prefer to know exactly why the default init is not working for me. I'm hoping this is just something simple I'm missing. Anything to point me in the right direction would be appreciated.

Thanks

/etc/default/init contents:
Code:
#
# Copyright 1992, 1999-2002 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident  "@(#)init.dfl   1.7     02/12/03 SMI"
#
# This file is /etc/default/init.  /etc/TIMEZONE is a symlink to this file.
# This file looks like a shell script, but it is not.  To maintain
# compatibility with old versions of /etc/TIMEZONE, some shell constructs
# (i.e., export commands) are allowed in this file, but are ignored.
#
# Lines of this file should be of the form VAR=value, where VAR is one of
# TZ, LANG, CMASK, or any of the LC_* environment variables.  value may
# be enclosed in double quotes (") or single quotes (').
#
TZ=US/Eastern
CMASK=022
LANG=C

---------- Post updated at 11:23 AM ---------- Previous update was at 11:21 AM ----------

Here are the locale settings:
Code:
# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=
# locale -a
C
POSIX
en_CA
en_CA.ISO8859-1
en_CA.UTF-8
en_US
en_US.ISO8859-1
en_US.ISO8859-15
en_US.ISO8859-15@euro
en_US.UTF-8
es
es.UTF-8
es_MX
es_MX.ISO8859-1
es_MX.UTF-8
fr
fr.UTF-8
fr_CA
fr_CA.ISO8859-1
fr_CA.UTF-8
iso_8859_1

# 2  
Old 11-16-2015
How do you log in?
# 3  
Old 11-16-2015
If you want to change the default locale system-wide then in /etc/default/init:

Code:
 
 LANG=C
 LC_ALL=C

Also check the effect of any other LC_* variable(s) in that file.
This User Gave Thanks to hicksd8 For This Post:
# 4  
Old 11-16-2015
Mayhap the locale is (re-)set in the .profile (or equivalent) script on login?
This User Gave Thanks to RudiC For This Post:
# 5  
Old 11-16-2015
I'm logging in via SSH.

I already had LANG=C in the default init file, but I just added LC_ALL=C. After reboot, everything but LANG is set to C.

Code:
# locale
LANG=en_US.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=C
# echo $LANG
en_US.UTF-8

So it's pretty clear that LANG is getting set somewhere else, but I'm not finding where. I've logged in as root and my user account with the same results and have checked .profile, .bash_profile and /etc/profile.

Could there be another item I'm missing or is there a way to debug the login to see everything that is being executed on login?

---------- Post updated at 02:49 PM ---------- Previous update was at 01:44 PM ----------

I popped an "echo $LANG" into the /etc/profile and the local profile and it is getting set to en_US.UTF-8 before it gets to anything in those. Still digging.
# 6  
Old 11-16-2015
Quote:
Originally Posted by kaledragule
I'm logging in via SSH.
Then, the LANG variable is set to en_US.UTF-8 on the client side and negotiated during the authentication. Use "ssh -v" to see it being passed.

You can set it to something else for your ssh session like this:
Code:
$ LANG=C LC_ALL=C ssh m10-4

This User Gave Thanks to jlliagre For This Post:
# 7  
Old 11-16-2015
Note that if LC_ALL is set in your environment, none of the other locale environment variables (LANG, LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, and LC_MESSAGES) can have any effect. LC_ALL overrides all of the other locale environment variables and should NEVER be set by the system as part of a user's login environment. Normally, a login environment should just provide a setting for LANG which provides a default value for all of the LC_* variables except LC_ALL.
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. AIX

Undestanding LANG setting in /etc/environment

Hi All, We had issue with a application which reports process counts in log, application used to log process counts as Integer data type (1500). One fine morning we started seeing process counts in application log as Decimal (1,500). Our UNIX admin did investigate and figured-out that... (5 Replies)
Discussion started by: Aaron Boyce
5 Replies

2. Red Hat

init-script failing because of /etc/rc.d/init.d/functions

I encountered a problem on one of our database servers. OS: CentOS 5.5 final Kernel: 2.6.18-238.5.1.el5.028stab085.2 (OpenVZ kernel) We wrote some DB-Start/Stop-scripts ("/db2/admin/scripts_dba/start_services.ksh" and ".../stop_services.ksh") to start the database instances. (Database... (1 Reply)
Discussion started by: bakunin
1 Replies

3. Debian

Iomega ix2-200 Custom Debian - Autostart script in init.d not Working

!!Hello Everyone!! I Recently purchased a Iomega iX2-200 NAS that runs a custom debian installed by Iomega (Linux Debian 5.0.2 ( 2.6.22.18 armv5tejl)) . I have SSH access. I installed Transmission since the factory installed torrents manager that Iomega uses is terrible. Transmission-daemon... (1 Reply)
Discussion started by: stejimenez
1 Replies

4. Linux

How to I change init levels after typing init 1

Dear all, I typed in init 1 on my redhat box as root and according to wikipedia (http://en.wikipedia.org/wiki/Runlevel): 1 Single-User Mode Does not configure network interfaces, start daemons, or allow non-root logins So now I can't connect back to it. How do I change the init back to 3?... (8 Replies)
Discussion started by: z1dane
8 Replies

5. UNIX for Dummies Questions & Answers

Setting the $LANG info needed

Hello (Very New to UNIX -Solaris 10) I'm trying to set the LANG variable to C but not sure if it's getting set, need some help on this. Currently I have it set to en_GB.UTF-8 I need to set it to C for an install. but when I run set LANG=C and then run echo $LANG its still set to... (2 Replies)
Discussion started by: deedaz
2 Replies

6. Solaris

Solaris 10 - init stops working

I have a really strange issue on Solaris 10 running on v490. I'm running Oracle 10g on the box. Everything runs fine and all of a sudden I get a call from a DBA. I check and none of the Oracle processes are running. They were definitely running after the system booted and nobody stopped them. I try... (0 Replies)
Discussion started by: GKnight
0 Replies

7. AIX

Setting Variables not working

Hi all, I am trying to set up some variables in a shell script. The variables contain values of various paths needed to run a java module. The problem is the variables dont seem to be setting at all. here is what i am trying to do : JAR_HOME=/home/was5/bdcms/scheduledjobs/lib export... (1 Reply)
Discussion started by: rpandey
1 Replies
Login or Register to Ask a Question