方法1:以服务的方式启动程序。
Ubuntu默认的运行的等级为2,即rc2.d/下以S打头的服务在开机之后,用户登录之前都会运行。也就是sheel还没有启动,程序不受任何用户控制了,包括终止该进程的指令也无法输入。
具体方法:先在/etc/init.d下创建可执行的脚本,设置可执行权限,然后在/etc/rcX.d目录下建立该脚本的链接文件,并命名为S开头的文件名,即可。注意Ubuntutu下的,默认情况下S,2等级目录下的服务会被执行
方法2:用户登录后自动运行程序
在/etc/bash.bashrc脚本最后加入要执行的 命令 如/home/dpu/dpu/dpu6,这样用户登录后,就会执行该程序
方法3:用户自动登录,在指定tty下自动运行程序。
上面介绍的方法在所有的tty下都会执行,所以如果需要在不同的tty下自动运行不同的程序,还得指定tty
修改/etc/event.d/tty文件,用自己的登录程序替代/usr/sbin/login
目前这种方法存在一个问题,那就是这种tty方式启动的程序无法响应ctrl+c中断,中断之后,这个程序马上重生(respawn),无法在返回到shell
方法4:用户登录后,自动开启应用程序,此程序只会在登录的那一刻运行一次,不会重生,所以能够想象ctrl+C中断,停止程序的运行,立马返回到shell命令行。
对于有在不同的tty上,去启动多个不同的应用程序,唯一的方法就是为不同的应用程序创建不同的用户,在对应的用户目录下的.bash.bashrc文件里添加启动命令,这种是目前我知道的可以解决的唯一方法。
阅读(1005) | 评论(0) | 转发(0) |