Linux应用程序怎样设置开机自动启动?
一、Linux应用程序开机自动启动设置方法 具体方法如下: 打开一个终端,在终端输入 [root@青柠檬(it.dengchao.org) ~]# vi ~/.bash_profile按键盘上的“i”键,移动光标,至文本末尾,输入下面的语句: export DISPLAY=:0 && QQ &输入好以后,按键盘左上角的“ESC”键,再按“Shift”加“:”(键盘上的冒号键),终端会在最下面显示一个冒号。
如果出现冒号,则输出“wp”(不包含分号)。
好了,关闭终端,重启系统,Linux QQ便会自动启动了。
二、总结 Linux的root目录下面的。
bash_profile和bashrc等脚本文件在系统启动时会被执行,而bash_profile是第一个被执行的。
所以,只要在此脚本中添加上面的语句即可实现应用程序开机自动启动。
linux开机自动启动脚本方法有哪些呢?
1、相关基础知识点 1)redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式/etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中) /sbin/mingetty #等待用户登录 在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: 调入keymap以及系统字体 启动swapping 设置主机名 设置NIS域名 检查(fsck)并mount文件系统 打开quota 装载声卡模块 设置系统时钟 等等。
/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。
凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。
调用的顺序按xx从小到大来执行。
(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。
值得一提的是,Redhat中的运行模式 2、 3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。
2)init运行级别及指令 一、什么是INIT: init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。
所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。
如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
如何在linux里面设置程序自动启动?
测试环境:Fedoa7,管理员:oot,普通用户:test1 实现目标:在Linux启动时,自动运行位于普通用户test1根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志文件追加一条记录,源码如下: fom datetime impot datetime now=datetime.now() f=open('test.log','a') f.wite('%s '%now) f.close() Linux在启动时,会自动执行etcc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下,有两种办法: 方案一: 1.因为其中的c.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面 2.用oot账号登陆Linux,vi etcc.dc.local编辑文件,在最后加入两行需要执行的脚本程序: cd hometest1 ——该步不可少,否则会提示没有权限打开'test.log'文件 su test1 -c "python hometest1test.py" ——把要执行的命令作为一个参数传递级su 方案二: 1.init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务 2.用oot帐号登录,vi etcc.dinit.dmystat,追加如下内容: #!inash #chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机
怎么让我的程序在linux中开机自动启动?
下面是以前学习Linux时写的,后来仔细研究rc.sysinit后发现,只需要修改下列地方就可以了,不必这么麻烦的: rc.sysinit中有这样的一段代码: # Load other user-defined modules for file in /etc/sysconfig/modules/*.modules ; do [ -x $file ] && $file done # Load modules (for backward compatibility with VARs) if [ -f /etc/rc.modules ]; then /etc/rc.modules fi 可见只需要配置两个地方的任何一个就可以了(以加载fuse内核模块为例) (1) 在/etc/sysconfig/modules/下面创建*.modules文件,参考已经有的*.modules文件,例如我写创建文件my.modules,内容为modprobe fuse 记得最后chmod 755 my.modules (2) 或者在/etc/rc.modules里面加上modprobe fuse,没有的话创建该文件。
然后reboot,lsmod | grep fuse验证一下就OK了。
============== Automatically load kernel modules: 为搞清楚如何在系统启动时自动加载模块,搜索了好久,网上有很多人提出这个问题,但都没有正确的答案,无论是中文社区还是英文社区,大家的回答都没有讲到点子上,无非是围绕modprobe.conf、modprobe讲来讲去的,要不就是针对特定问题尝试不同的方法。
有的还建议把modprobe modulename写入rc.local,却不曾想,rc.local的执行被放在整个启动顺序的很后面,而启动init.d下面定义的服务却在rc.local前面,那么如果某个服务要用这个模块,就不行了。
在测试LVS时,因为我的Fedora7的Kernel(2.6.21-1)缺省没有加载ip_vs模块,而内核中已经包含编译好的IPVS相关的模块了,放在:/lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/下面,有: /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_dh.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_ftp.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lblc.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lc.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_nq.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_rr.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_sed.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_sh.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_wlc.ko /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_wrr.ko 其中ip_vs.ko是IPVS的基本模块,不加载IPVS就不能工作(运行ipvsadm会报错的),而其他的都是IPVS的调度算法或特定协议的辅助模块,需要时则须加载。
如果系统运行时手动加载则需:modprobe ip_vs 和modprobe ip_vs_sh等。
要了解如何在系统启动时自动加载模块(Automatically load kernel modules),就得先了解系统是如阿启动的,启动的过程中按什么顺序做了什么,怎么做的,这些启动操作都有那些文件和脚本控制。
由于Google和Baidu出来的东西都解决不了问题,而且man modprobe和man modprobe.conf发现并不是需要修改的文件。
于是温习鸟哥的linux.vbird.org/">http://linux.vbird.org/“开机关机流程与Loader”: 1. 整个开机流程是 (1) 载入BIOS的硬件信息,并取得第一个开机装置的代号 (2)读取第一个开机装置的MBR的boot Loader (grub)的开机信息 (3)载入OS Kernel信息,解压Kernel,尝试驱动硬件 (4) Kernel执行init程序并获得run-lebel信息(如3或5) (5) init执行/etc/rc.d/rc.sysinit (6)启动内核外挂模块(/etc/modprobe.conf) (7) init执行run-level的各种Scripts,启动服务 (8) init执行/etc/rc.d/rc.local (9)执行/bin/login,等待用户Login (10)Login后进入Shell 看来正确的方式是把需要加载的模块放在 (5)或 (6),但正如网络上很多人的尝试,修改modprobe.conf都没有成功(例如在modprobe.conf中增加install ip_vs...)。
于是我修改了/etc/rc.d/rc.sysinit就成功加载了。
初步尝试在rc.sysinit最后增加 modprobe.conf ip_vs,重启后lsmod | grep ip_vs,发现成功自动加载了。
于是仿效rc.sysinit中其他模块的加载方法,扩展改脚本文件,在最后增加下来一段: # load LVS IPVS modules if [ -d /lib/modules/$unamer/kernel/net/ipv4/ipvs ]; then for module in /lib/modules/$unamer/kernel/net/ipv4/ipvs/* ; do module=${module##*/} module=${module%.ko} modprobe $module >/dev/null 2>&1 done fi 就把/lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/下的所有模块都自动加载了。
其中: if语句检查ipvs模块的目录是否存在 for循环遍历该目录下面的所有文件 module=${module##*/} :其中##表示从前面删除字符,*/表示删除到最后一个/,如果一个#就表示只删除到第一个/。
如果变量后面接##,表示在##后面的字符串取最长的(一直到最后面),如果接#,表示取最小的一段。
module=${module%.ko}:表示从后面删除.ko。
如果变量后面接%%,表示在%%后面的字符串取最长的(一直到最前面),如果接%,表示取最小的一段。
这样多module的两次修改就得到了模块名,就是文件名不带路径和.ko后缀。
modprobe $...
Linux系统下Oracle的自动启动服务怎样创建?
一、使用oot用户修改etcoata文件: $ vi etcoata ocl:oacleapppoduct10.2.0d_1:N 改为: ocl:oacleapppoduct10.2.0d_1:Y 也就是将最后的N改为Y 二、使用Oacle用户修改$ORACLE_HOMEindstat文件: # su - oacle $ cd $ORACLE_HOMEin $ vi dstat 找到 ORACLE_HOME_LISTNER=……这行, 修改成ORACLE_HOME_LISTNER=u01appoaclepoduct10.1.0d_1 或者直接修改成: ORACLE_HOME_LISTNER=$ORACLE_HOME 三、测试运行 dshut, dstat 看能否启动Oacle 服务及listene服务: 1.修改dstat和dshut的日志文件的权限: $su - oot #cd $ORACLE_HOME #chown oacle:oinstall statup.log #chown oacle:oinstall shutdown.log注:statup.log 和shutdown.log 可能没有,当你运行 .dstat 和 .dshut 之后才自动创建。
2.执行相应的脚本进行测试 #su - oacle $cd $ORACLE_HOMEin $.dstat (。
dshut) $ ps -efw | gep oa_ $ lsnctl status $ ps -efw | gep LISTEN | gep -v gep 四:创建服务 $su - oot # cd etcc.dinit.d # vi oadstat 复制如下脚本1或者脚本2内容到oadstat文件: 注意点: (1) #开始的行不能少,否则后面运行chkconfig命令会报错:oadstat 服务不支持chkconfig (2)根据自己的环境修改环境变量配置部分(蓝色字体位置) (3) 从windows下面保存的如下脚本内容,通过ISO复制到linux,再将脚本复制到oadstat文件中后,在终端下用vi oadstat命令打开,一些行后面可能有类似^M的字符,将其删除,否则在运行后面的chkconfig命令后,在etcc.d cN.d目录(N为运行级别)下生成的S99oadstat文件是空的,可以用vi查看S99oadstat文件,内容应该和etc c.dinit.doadstat文件内容相同才是正确的(第三种情况是我在xp下使用虚拟机VMWARE安装linux,并将如下脚本保存成文本文件,然后制作成ISO文件,然后把ISO里面的文件的内容复制到oadstat时遇到的,这种情况一些行后面类似^M的字符,用gedit无法看到,只有使用vi才能看到) ——脚本1(数据库、监听、dconsole、sqlplus) #!inash # chkconfig:345 99 10 # desciption:Statup Scipt fo Oacle Dataases # etcc.dinit.ddstat
linux开机自动启动脚本放在哪儿
在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you don't# want to do the full Sys V style init stuff.touch /var/lock/subsys/local. /etc/rc.d/rc.tune/opt/pjt_test/test.pl保存并退出;
转载请注明出处51数据库 » linux软件自动启动
骚年应该有内涵