问一个关于linux设置开机自启动程序的问题
我在linux上有一个java文件已经编译好了.class文件了。
现在我想将这个class文件做成开机自启动的,这个怎么做呀?
我在网上搜到的说在/etc/rc.local/添加一行就行了。
于是我编写了一个脚本
Assembly code
cd /XX
java XX
将这个脚本保存为XX.sh
然后再rc.local中添加了一行
./XX.sh
可是这样根本不起做用的。大家帮我看看,这个应该怎么写才能使这个class文件开机自启动啦。
------解决方案--------------------不要直接./XX.sh
加上全路径$PATH/XX.sh
------解决方案--------------------楼上的,你看看这样是否可行:
1.首先确保你的那个文件".class"是否为可执行文件,(验证方法,进入文件所在文件夹,执行./.class,确保OK)
2.编辑/etc/rc.local文件;(该文件需要root权限,最好切换成root用户或者使用sudo)
在rc.local文件里面添加你的可执行文件的全路径,比如/home/user/program/.class
注意:刚才我在ubuntu 10.04版本查看了一下,有个exit 0,记得把你添加的内容放在exit 0之前,否则执行不到你得文件便exit了;
3.rc.local文件为只读属性,需要强制保存(对于使用vim编辑器来说 输入:w!强制保存)
完成后最好使用cat /etc/rc.local文件,检查你是否添加OK;
4.重启PC观察你的程序.class是否自动运行了;
------解决方案--------------------在你的xx.sh脚本最后加上一行:
touch /tmp/aaabbbccc.txt
只是用来测试看看系统启动后这个脚本到底有没有执行,如果脚本确实执行了那应该会在/tmp目录下产生一个aaabbbccc.txt文件,否则就是没有执行。
------解决方案--------------------这个问题跟你要执行的java命令执行后期望得到的结果有点关系了,java方面不懂。
------解决方案--------------------
------解决方案--------------------这个还是有区别的,你用用户登录的话在登录时自动执行了.bash_profile,在其中又调用了.bashrc。但是rc.local是init进程在较“早期”调用的,这个时候还没有你设置的java环境变量吧,大概是这么理解吧
------解决方案--------------------就是在同一个脚本中把环境变量的设置语句加到调用你的java代码的语句前面啊
------解决方案--------------------Python code
Last login: Thu Dec 15 18:16:40 2011 from ad999
[root@RHEL6A ~]# cat /tmp/osstarttest.txt
this is test data
[root@RHEL6A ~]# grep -v -E '(^#|^$)' /etc/rc.d/rc.local
touch /var/lock/subsys/local
/root/pycode/py17.py
[root@RHEL6A ~]# cat /root/pycode/py17.py
#!/usr/bin/env python
filename=r'/tmp/osstarttest.txt'
fh=open(filename,'a')
buffer='this is test data\n'
fh.write(buffer)
fh.close()
[root@RHEL6A ~]#
------解决方案--------------------
先执行/etc/rc.local 才会到登录那步
脚本里先获取系统变量试试
source /etc/profile