How to stop other processes and kernel from printing output on current virtual term


 
Thread Tools Search this Thread
Top Forums Programming How to stop other processes and kernel from printing output on current virtual term
# 1  
Old 06-23-2009
Question How to stop other processes and kernel from printing output on current virtual term

Hello All,

Background
========
I am creating a virtual appliance console for a software stack on VMware ESXi. I am using Centos 5.x as the Linux distro (Guest OS). I have created a ncurses based application that does the user authentication and present him with some basic controls to do basic system administration. This application will be setup to lunch automatically from mingetty as it is happening now. We have made the configuration to launch the application on tty1 automatically after each system restart.

The Issue
=======
The issue which is hindering us alot are the kernel and other processes outputs that get printed on tty1 when it is active. Well it is a normal behavior that all kernel info, warnings and error messages are goes to the current active virtual console. But this also destroy our ncurses based application UI that supposed to run all the time on the tty1.

The Question
==========
So my question is that can we in Linux (kernel:2.6, distro:Centos5.x) stop kernel and other processes to output their text to our terminal (i.e. tty1), and also redirect all the output to tty1 except ours to some other VC such as tty2.

Kindly respond anyone. We are in deep trouble due to this issue.
Thanks

Kashif Ali Siddiqui
Linux Developer
# 2  
Old 06-23-2009
This is not a programming solution:

1. edit your /etc/syslog.conf file to turn off all of the syslog messages that display there. This does not stop other kernel output.

2. For that you can play with klogd errorlevel settings. Start klogd with something like
Code:
klogd -c 4

This limits console displays to severe errors only. KERN_ERR level messages I believe.
Read your man page for klogd and syslog before tinkering. DO NOT GO ANY LOWER.

Both of these suggestions have downsides - they shut off the flow of information which a lot of sysadmins find useful. They also require a custom setup script if this is a product that goes to customers who are not Linux savvy.
# 3  
Old 06-23-2009
Kindly suggest how can I restrict kernel and other utilities that generate logs entries through klogd and syslog to a specific (fixed) virtual terminal.

Since /dev/tty1 will be hosting my application, I can open up /dev/tty2 to have all system wide log entries there. So is there any thing in kernel arguments, and/or in configuration that I can change/make to restrict all kernel output to a specific console.

Also I post this in programming forum, because in my application, I explicitly made the STDOUT(/dev/tty1) exclusive to my application, and redirect all the output to the /dev/tty2. Here is the code ...
Code:
bool TerminalSetup()
{
	bool bRet = false;
	
	if (ioctl(1, TIOCEXCL, 0) != 0)
	{
		printf("\n -- Error!!\nUnable to put the terminal into exclusive mode.. ");
	}
	
	int iFd = 0;	
        string ref_strRedirTerminal = "/dev/tty2";
	if ((iFd = open(ref_strRedirTerminal.c_str(), O_RDWR)) == -1) /* strange ... */
	{
		fprintf(stderr, "Could not open %s R/W (%s)\n", ref_strRedirTerminal.c_str(), strerror(errno));
		fflush(stderr);
		return false;		/* maybe above user limit? */
	}
	
	if (ioctl(iFd, TIOCCONS, 0))
	{
		fprintf(stderr, "Terminal redirection fails. (%s)\n", strerror(errno));
		fflush(stderr);		
	}
		
	close(iFd);
	
	bRet = true;	
	return bRet;
}

So what I get in result is that when I redirected an output to /dev/tty1 through echo as
Code:
echo "Testing ..." > /dev/tty1

the output did redirected to the /dev/tty2 as I made it explicit in my code. But when partition tables are re-synced from fdisk utility, the kernel outputs on the /dev/tty1 (as it was active then).

Hence the above code to make /dev/tty1 exclusive to my process, and redirect all output to /dev/tty2 fails partially.

So any thoughts then.

Kashif
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to stop Sqlplus command from printing db connection details

Hi, Could someone tell me how to stop SQLPLUS command from printing the connection details in the console. Below is the lines i get in console when executing the sqlplus... SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 9 03:31:03 2011 Copyright (c) 1982, 2005, Oracle. All rights... (2 Replies)
Discussion started by: funonnet
2 Replies

2. SuSE

List of processes/ which ones to stop

Hi there, I've install a testserver with SLES 11.0! I'll install/test XEN + WebServer not all things at the moment! In a first time, I'd like to stop all unuse processes... but I don't understand all processes! As someone a list of all processes with his signification and which should/could... (3 Replies)
Discussion started by: hiddenshadow
3 Replies

3. Solaris

How to start/stop processes

Please anyone tell me In my last interview the HR asks me how to monitor, start,stop & kill the various processes and subprocesses. Please anyone explain me clearly. It's my personal request (3 Replies)
Discussion started by: suneelieg
3 Replies

4. UNIX for Advanced & Expert Users

How to log start/stop time of ALL processes

Hi all, I joined this forum today and this is my first question. I thank you all for viewing it. I will try to be brief. The OS: HP-UX B.11.11 U 9000/800 There are lot of cron scheduled perl scripts running on this server, which do different things at different time. Some of them process... (10 Replies)
Discussion started by: bluesky099
10 Replies

5. UNIX for Dummies Questions & Answers

how to stop to current directory using find

Hello, I just want to ask the following use of find command: 1. how can I find files only to the current directory? 2. how can I find files to directories and all subdiretories (are this include soft links?) but will not go to other mountpoints that is under that mountpoint. Im combining... (1 Reply)
Discussion started by: james_falco
1 Replies

6. Shell Programming and Scripting

Search term and output term in desired field

Hi All, I have an input_file below and i would like to use Perl to search for the term "aaa" and output the 3rd term in the same row as "aaa".For Example, i want to search for the term "ddd" and would want the code to ouput the 3rd term in the same row which is "fff". Can somebody help ? ... (28 Replies)
Discussion started by: Raynon
28 Replies

7. Shell Programming and Scripting

Checking before start and stop processes

Hi, I have 2 start and stop sh. Start sh -------- This will start few processes. Example code: echo "start process : lgz200 /pipe=test_jobs" nohup lgz200 /db=test/test1@test1 /pipe=test_jobs > ../log/lgz200_j.log & echo "echo \"stop process (pid=$!): lgz200 /pipe=test_jobs\"" >>... (3 Replies)
Discussion started by: maldini
3 Replies

8. Programming

current processes

Hi all, I'm running AIX 4.3.3. Is there a way in C++ to get a list of all current processes running on the processor? I have a manager daemon tracking all the software applications. They're using a system of healthchecks to update status. One intermittently is missing its healthcheck,... (1 Reply)
Discussion started by: jalburger
1 Replies

9. Programming

Create a Term & Run chars on this Term

hi floks ! i'd like to know how can i transmete a character or a string from my source code to a term and make it interpret or un by the shell wich is running in my term. I'd like to create a Term from my code (and get its file descriptor) and then transmete each char typed on the keyboard to... (1 Reply)
Discussion started by: the_tical
1 Replies

10. UNIX for Dummies Questions & Answers

Stop Printing Please

what is the fastest approach to kill a print job ? if the lpstat command does not show the print job id .... aix (4 Replies)
Discussion started by: cubicle^dweller
4 Replies
Login or Register to Ask a Question