当前位置:  技术问答>firefox在Linux下运行的话对系统的基本要求? iis7站长之家

系统启动时自动运行我的程序

    来源: 互联网  发布时间:2014-12-14

    本文导语:  我做了一个SOCKET程序,手工运行没问题。 但做成/ETC/RC2。D下系统开机时自动启动后,总是出错。 (我的程序中有读和写数据库的部分,用的数据库的DBA读和写记录) 请问是什么问题? 在自动运行的程序中能转换成...

我做了一个SOCKET程序,手工运行没问题。
但做成/ETC/RC2。D下系统开机时自动启动后,总是出错。

(我的程序中有读和写数据库的部分,用的数据库的DBA读和写记录)
请问是什么问题?
在自动运行的程序中能转换成其他用户吗?(‘其他用户’不是ROOT用户)。

|
你的系统是sco openserver?

我所说的原用户是 informix

你的那一句shell可以这样写:

 su - informix -c "/usr/informix/jlverify/jlverify"

请注意 informix前的 - 号。如果加上 - 号的话,su 调用就会自动设置 /usr/informix/.profile 文件中的环境变量(例如 INFORMIXSERVER INFORMIXDIR),这样就会保证以 informix的用户身份连接数据库。

如果 informix 前没有 - 号,则要在当前启动程序的脚本中设置 INFORMIXSERVER INFORMIXDIR,以及其他环境变量。

|
一般注意一下rc2运行的各环境变量和你调试的那个用户的环境变量的对不对。

另外,对于绝大多数的数据库访问,可能需要配置环境变量,如:informix,oracle。另外,也要注意用户名问题,对于一些ec写的程序,缺省的登陆用户使用的是系统用户。

要更换用户可以,
su -  -c ""

|
关于系统启动时自动启动某些自己的应用程序:
//Designed by ZhouLifa
//If any bug found, please inform me as soon as possible!
//Contact info:
//post addr: 广州市天河区华南理工大学计算机研究所 周立发 510640
//Computer Application Research Institution, South China University of Technology
//e-mail: zhoulifa@yahoo.com
//Tel: 020-87113239-9322
//LastModifiedDate:2002.8.4
其实linux启动的主要工作在/etc/rc.d目录下的文件里.
1.首先是rc,它是一段shell,就是启动时做的事都在那里了,比如屏幕上出现Welcome to Red Hat Linux几个字也是它打印出来的,然后在set clock time, set hostname, set IP address,监测硬盘,启动相应的服务等
2.如果你仔细看过就知道了它首先确定启动选项0-6,再进入/etc/rc.d/下相应的目录里,比如单用户模式为/etc/rc.d/rc1.d,我们平常用的Xwindow模式为/etc/rc.d/rc5.d
3.搜索相应目录(这里假设为/etc/rc.d/rc5.d)里的文件,首先找K开头的个文件(这是要被停止的程序),然后一个一个终止相应的进程.再找S开头的文件,这就是启动时要启动的各个程序.比如一般有:
K03rhnsd       K30sendmail   K74ypserv    S17keytable    S90cWnn
K05innd        K34yppasswdd  K74ypxfrd    S20random      S90FreeWnn
K15postgresql  K35vncserver  K89bcm5820   S25netfs       S90xfs
K16rarpd       K45arpwatch   K91isdn      S26apmd        S91smb
K20nfs         K45named      K92ipchains  S28autofs      S95anacron
K20rstatd      K46radvd      K92iptables  S56rawdevices  S95atd
K20rusersd     K50snmpd      S05kudzu     S56xinetd      S99local
K20rwalld      K50tux        S10network   S85gpm         S99wine
K20rwhod       K60lpd        S12syslog    S85httpd
K25squid       K65identd     S13portmap   S90canna
K25sshd        K74ntpd       S14nfslock   S90crond                             
你开机时就会看到:
Starting syslog:      [ OK ]
Starting sendmail:   [ OK ]
Starting cWnn:       [ OK ]
Starting wine        [ OK ]
等等上面有的东西.
这些文件编号有个规则,就是都是S开头加两位数字,再加要启动的程序的名称.
数字越大就越在最后启动.即
Starting wine        [ OK ]
这一行可定在
Starting sendmail:   [ OK ]
之后出现.
4.这里的文件都是符号链接,即用ln -s命令建立的,用ls -l /etc/rc.d/rc5.d可以明确地看到他们的相应程序命令所在的位置.
5.如果你安装了某个软件,希望它在系统启动时自动启动,安装程序一般在这里加一个S文件.所以,如果你有一个程序希望它在系统启动是自动运行,你也可以加一个在这里.
比如我要启动的程序是/home/zhou/test/myapp
我在/etc/rc.d/rc5.d目录里用命令ln -s /home/zhou/test/myapp S99myapp建立这个文件S99myapp
重新启动时就可以看到
Starting myapp:
开机后ps -A也可以看到我得程序在运行,当然这个程序是一直运行的,不是马上结束的那种
注意:关键是你要知道你要运行的程序的路径

6.另外,rc文件的最后指明在上述init程序启动完毕后要找/etc/rc.d/rc.local文件,会把rc.local文件里的程序全部运行,但rc.local是个shell文件.
你可以自己在里面加入
echo "Hello, welcome to my home, my name is zhoulifa, My own program run here"
sleep 5
系统启动时你可以看到这句话
对于上述我的程序你可以在rc.local文件里加入:
echo "Starting my own programe myapp now..."
/home/zhou/test/myapp
echo "myapp started OK"
7.需要强调的一点是:如果你的程序本来不是用root身份运行的,那么在启动时可能就不能运行,因为你的环境变量不是符合的。
解决问题的办法就是:1、先在你的程序的开头就用setenv()函数来设定一些环境变量;2、在rc.local里用sudo username command去运行你这个程序。
***********************
我刚做过试验,先写这样一个含有启动oracle所需的命令的文件OraScript:
[test@LinuxServer00 bin]$ cat OraScript
connect internal
startup
quit
再写这样一个运行上述命令的文件StartOracle,主要作用就是设置变量,最后一行启动svrmgrl
[test@LinuxServer00 bin]$ cat StartOracle
export USERNAME="oracle"
export HOME=/home/oracle
export PATH=$PATH:$HOME/bin
export BASH_ENV=$HOME/.bashrc
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export ORACLE_SID=mydb
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin:$ORACLE_HOME/dbs:./
export USERNAME BASH_ENV PATH
/oracle/product/8.1.7/bin/svrmgrl 

    
 
 

您可能感兴趣的文章:

  • 安装运行微软win7/Windows7系统要求及官方下载地址
  • 开发的java工程系统运行在linex上,现在想监控这个系统的运行情况
  • 如果没有操作系统,Hello World可以运行吗?如果要在一台没有操作系统的机器上运行Hello World需要什么?应该怎么实现?
  • 求教:Linux系统如何保证系统时间运行?
  • 64位系统上编译运行32位程序,运行时出现Accessing a corrupted shared library
  • 急急 solaris 系统被自己的进程调用太多堵死了,其它系统进程也运行不了,有没有什么好的办法啊?在线等!!!!
  • Unmounting initrd failed 错误表示什么错误?可能是由什么引起的?系统原来一直运行正常,突然发现系统登陆错误,重启提示以上错误。
  • 用 ghost 恢复 linux 系统后, 系统不能正常启动运行?
  • 请问如何远程连AIX系统运行窗体程序?
  • 什么是运行时系统?
  • 嵌入式系统的C运行库 Newlib
  • linux系统运行在windows下
  • 便携版 Java 系统运行环境 jPortable
  • 请教如何搭建能够运行JAVA的最精简Linux桌面系统
  • linux系统的服务器上能运行类似IIS的服务吗?
  • firefox在Linux下运行的话对系统的基本要求?
  • 怎样让系统启动的时候将一个程序运行?
  • linux 系统中程序运行的模式
  • 操作系统运行exe文件时,是怎样一步一步加载的?(在线等)
  • 如何在Linux系统上运行T/TCP程序
  • CENTOS系统下不能运行PHP
  • 我的系统硬盘有一个block坏了,系统不能正常启动,请问如何能启动设备?
  • 无法启动。xp,opensuse双系统,suse中修改了系统启动顺序,机器无法启动了,提示no operating system
  • 现在我的红旗linux操作系统启动不了!我手头上有一张redhat- linux的启动盘,大家告诉我有什么办法可以恢复多系统引导?
  • 做redhat linux7.3启动软盘:我的LINUX系统是在hda7上的,但我在这做的启动软盘是要用来启动接在hdc1上的另一个LINUX系统的,请问该怎么办啊
  • 请教各位大侠: 系统在启动时一直停在一行:Starting system logger长时间无响应,启动系统需要很长时间,请问是什么原因?
  • 为什么我的Linux系统拔掉网线后启动程序启动的非常慢?
  • 如何修改启动菜单的启动顺序(linux,windows),我想让系统默认启动到windows.谢谢!!
  • 让Oracle服务随Linux系统的启动而启动
  • windows 系统重装后,在电脑启动时,原有的linux系统启动不了该怎么办?请高人指教!谢谢!
  • 如何修改RedHat8启动延时及默认启动的系统?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • windows server2008上PowerBuilder程序系统错误解决方法
  • UNIX系统下的C程序移植到Linux系统的问题
  • Fedora 16系统,装了新的程序,系统重启就没了。怎么回事?
  • 怎么样让我的程序最小化时进入系统托盘(就像系统时间那个位置)?
  • 怎么在java程序中执行系统命令或其他可执行程序(像批处理一样)?
  • 在liunx系统上跑程序,几个小时后系统死机,而cpu不狂涨,也无内存泄露
  • 英文操作系统可以程序里面可以写中文程序吗
  • Linux(Oracle系统在上面)系统无缘无故死机 , 可能是由于应用程序引起 , 可是由于重新启动查不到相关信息 , 不知道在哪里有记录系统CPU Lo
  • linux上的程序怎样远程启动另一个linux系统上的某个程序
  • 请大家帮忙提供资料:如何将windows系统服务程序移植为linux系统服务?
  • 定时top看系统参数,发现我的程序的SIZE项和RES项的数值一直在增加,这是不是说明,我的程序有内存泄漏?
  • 怎么在HP11.00平台启动时运行一个程序,就是让该程序随系统启动,麻烦各位教我,谢谢了!
  • 当使用qmail带的sendmail程序替换系统本身的sendmail后,重新启动系统,进程中还存在sendmail么?还是被qmail-inject代替了?
  • 关于Linux 2.6平台下,自定义的USB HID设备是系统提供驱动程序还是需要自己完成驱动程序?
  • 系统做的硬件RAID5,扩充硬盘后,可以扩大分区大小吗?这样会损坏以前的系统,应用程序吗?
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?
  • 请问:我正在编linux下的openssl程序,调试时要用443号端口,但我发现不通,应是linux系统占用了,我怎可停了它以作我用,或停了系统的openssl
  • 急!哪位朋友在aix系统下配置过apache+tomcat ? 它所使用的apache+tomcat程序,是否可以用在linux下的程序是一样的 ? 在哪儿可以下载
  • linux系统测试程序
  • 我自己写了一个一个程序,文件名叫test。。怎么能够像调用系统命令那样子去调用我这个命令呢。在任何地方输入test就能执行这个程序。
  • RedHat AS 4 如何在系统 reboot 时调用一个程序?
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 问一个系统配置的问题:win2k系统能不能于SCO UNIX系统共存?
  • win7/Windows7系统下载地址搜集整理
  • unix下用java.util.Date取系统时间比直接在系统下用date命令查看系统时间早整整一个小时
  • Ubuntu查看系统信息命令介绍
  • windows 系统是否是多用户操作系统,如何理解“多用户操作系统”的“多用户”?
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 我现在想做一个权限管理系统,想让权限系统的利用性更强,我应该怎样设计权限系统呢.
  • 怎样重装win7系统?win7重装系统步骤详细图文介绍
  • 谁知道哪里有用java开发的管理信息系统软件(如:图书馆管理系统,人事部管理系统)的代码?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3