Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Non-interactive & non-login shell environment? Post 303007555 by Corona688 on Friday 17th of November 2017 05:54:26 PM
Old 11-17-2017
Quote:
Originally Posted by bodisha
Thanks for the reply again... You sort of touched on the part of where I'm getting confused at. My understanding of a background process like a user ID for an Oracle database is it would be a non-interactive and non-login shell...
The shell is not actually in charge, it just helps arrange things. The shell isn't necessarily involved at all in creating the Oracle process, or creating any other process for that matter.

The one and only difference between "interactive" and "noninteractive" processes, as far as the kernel is concerned, is whether your process has a controlling terminal. The kernel knows what your terminal is even if your process doesn't - you can open it via /dev/tty. The kernel doesn't really care whether you have a terminal.

In the old days terminals were really terminals - physical devices attached to serial ports. /bin/login did the job of holding those ports open and reading username/passwords from them. Each port would have one /bin/login process running for it. These days, things like ssh have mostly taken over the job of sitting around and waiting for user input, terminals have become imaginary devices which get created and destroyed at need.

The login program creates your shell. It owns the terminal, and opens it, duplicating it onto file descriptors 0, 1, and 2 for you - standard input, standard output, and standard error. Then login runs your shell and lets it take over from there.

Quote:
It specifies a script and not a process... Which makes me wonder how does a background process owned get the environment.
When a process is created, it receives a copy of the environment of its parent. So it comes down to where the parent got its environment.

Last edited by Corona688; 11-17-2017 at 07:00 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to get environment of a "fresh" login shell?

Hello fellow *nix users! I am a bit confused how could I get an environment of a "fresh/clean" login shell, that is, the environment at that moment when user has started e.g. a new terminal/console or so. So this is the sequence of actions I should be able to do in a single shell session: ... (6 Replies)
Discussion started by: Miikka
6 Replies

2. Shell Programming and Scripting

how to write a shell script to login to a system which is interactive.

Can anybody help me to write a shell script to login interactive system once u open a connection using telnet it will ask for USERCODE: PASSWORD: DOMAIN: (1 Reply)
Discussion started by: sudhakaryadav
1 Replies

3. Homework & Coursework Questions

Help with Interactive / Non Interactive Shell script

Q. Write a script that behaves both in interactive and non interactive mode. When no arguments are supplied it picks up each C program from the directory and prints first 10 lines. It then prompts for deletion of the file. If user supplies arguments with the script , then it works on those files... (1 Reply)
Discussion started by: rits
1 Replies

4. UNIX for Dummies Questions & Answers

Can't login to a free shell environment

I would like to practice shell scripting and need an environment - free shell account. I tried Arbornet and the freeshell.org. But both always give me error: "File operations disabled, server identity can't be verified". Any idea what I should do? thanks in advance. (9 Replies)
Discussion started by: laiko
9 Replies

5. UNIX for Dummies Questions & Answers

What is login and interactive shell?

Hi Guys, Excuse if am asking silly Que ... :rolleyes: Please explain me whats difference between login and interactive shell in Linux .. Have googled but still in doubt .. :confused: --Shirish Shukla (4 Replies)
Discussion started by: Shirishlnx
4 Replies

6. Programming

Non-interactive login using C program in UNIX(Solaris)

Hi i need a c programm to login in unix(solaris). non-interactivley because it seems difficult to do it with unix shell scripting and passwd command cant be used and also i don't have expect installed and i am not allowed to installed expect in our servers. is there any c programm that can help... (1 Reply)
Discussion started by: munish259272
1 Replies

7. Red Hat

Su-only account with ssh capability and no interactive login

Hello experts, Is it possible to have an user account on RHEL 6.3 as a su-only account, but with ssh capability and no interactive login? Let me elaborate. Say, we have a cluster of 5 RHEL 6.3 servers and an user account (strmadmin) on each of the server as an su-only... (1 Reply)
Discussion started by: naveendronavall
1 Replies

8. Shell Programming and Scripting

Script as login shell (passing args to login shell)

Hello all, for security reasons my compagny imposes that my script be launch remotly via ssh under the users login shell. So serverA launches the ssh command to serverB which has a local user with my script as a login shell. Local script works like a charm on his own. serverB$ grep... (20 Replies)
Discussion started by: maverick72
20 Replies

9. UNIX for Advanced & Expert Users

Can adding to a new group be effective in current login environment without re-login?

Hey folks, When a user is added to a new group, the user has to be log out and log in again to make the new group effective. Is there any system command or technique to refresh user group ID update without re-login? I am not talking about to use "login" or "su -l" commands which can only make... (2 Replies)
Discussion started by: hce
2 Replies

10. Homework & Coursework Questions

How to set a non-login non-interactive shell for a user?

I am sorry for creating a new topic after my previous inquiry was closed, but I tried and tried and I do not know how to edit my previous post. This is not exactly any homework, this is one of 40 questions we were expected to prepare for one of the labs. I searched and read what I could and still... (4 Replies)
Discussion started by: me_me_me
4 Replies
getlogin(3C)															      getlogin(3C)

NAME
getlogin(), getlogin_r() - get name of user logged in on this terminal SYNOPSIS
DESCRIPTION
The function retrieves the name of the user currently logged in on a terminal associated with the calling process, as found in user- accounting database maintained by utmpd(1M). At least one of the standard input, standard output, or standard error must be a terminal. For the first of these found that is a termi- nal, a user must have logged in on that terminal, and that terminal must be the controlling terminal of the session leader process of the calling process's session. The function can be used in conjunction with to locate the correct password file entry when the same user ID is shared by several login names. The recommended procedure to obtain the user name associated with the real user ID of the calling process is to call and if that fails, to call To get the user name associated with the effective user ID, call performs the same operations as but returns the login name in the buffer to which buf points, whose size in bytes should be passed in buflen. buf should have space for the name and the terminating null character. The maximum size of the login name can be obtained using the API with as the argument. APPLICATION USAGE
The return value from points to static data whose content is overwritten by each call. RETURN VALUE
Upon successfully finding and validating the login name of the user logged in on the terminal, returns a pointer to the name. Otherwise, it returns a null pointer, and sets to indicate the error. Upon successfully finding, validating, and copying to the buffer the login name of the user logged in on the terminal, returns 0 upon suc- cess and returns an error number upon failure. ERRORS
and fail if any of the following is true: [EACCES] Access permission to get the status of the terminal device file, was denied. [EMFILE] Too many file descriptors are in use by this process. [ENFILE] Too many file descriptors are in use on the system. [ENOENT] The terminal device file cannot be found. [ENOTTY] None of the standard input, standard output, or standard error is a terminal, or for the first of these that is a terminal, no current login is registered on that terminal, or the session leader process of the calling process has no controlling terminal. [EPERM] One of the standard input, standard output, or standard error is a terminal, and a current login was found on that terminal, but that terminal is not the same as the controlling terminal of the session of the calling process. [ESRCH] The session leader process of the calling process is no longer running. The error condition associated with [EPERM] prevents processes that have access to some other user's terminal from believing that they are related to that other user's login session. also fails if the following is true: [ERANGE] The length of the name to be returned, including the terminating null byte, exceeds buflen. WARNINGS
Users of should note now conforms with the POSIX.1c Threads standard. The old prototype of is supported for compatibility with existing DCE applications only. SEE ALSO
utmpd(1M), getuid(2), sysconf(2), getgrent(3C), getpwent(3C), thread_safety(5). STANDARDS CONFORMANCE
getlogin(3C)
All times are GMT -4. The time now is 08:41 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy