
● sh
● php
● python
● perl
● java
但更多情况下,套装应用程序使用 shell 脚本,以 #! 符号设置环境变量提供该语言的运行时可执行路径,比如 #!/usr/bin/python。您也应该熟悉这种方法。
清单 1 使用 catalina.sh 默认脚本通过 ./ 方法启动 Apache Tomcat 应用程序服务器。然后,使用 sh 方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修改就可以启动该服务。
清单 1. 从命令行执行应用程序
$ ./catalina.sh start
Using CATALINA_BASE: /opt/apache-tomcat-7.0.26
Using CATALINA_HOME: /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME:/usr
Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
$ ./catalina.sh stop
.....................................................................
$ sh catalina.sh start
Using CATALINA_BASE: /opt/apache-tomcat-7.0.26
Using CATALINA_HOME: /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME:/usr
Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
考虑启动一个典型 Hypertext Transfer Protocol (HTTP) Web 服务器。在 Linux 中,任何低于 1024 的端口被认为是一个权限端口,只有 root 可以打开权限端口。因为,默认情况下,Web 服务器运行于端口 80,root 需要启动该进程。然而,如上所述,以 root 用户运行一个服务被认为是不安全的。正确的步骤是以 root 启动 该服务,然后将其转移到一个标准用户或者服务帐户。
幸运的是,许多服务器服务由脚本来执行这一 *** 作。如果您从头开始构建 Apache Web 服务器,您将会发现它以 root 用户启动,然后将 httpd 线程转交给 apache 用户。
清单 2 启动一个默认的 Apache 2 Web 服务器编译。安装流程也做了一些事情,包括使 apachectl 命令可执行。因为该流程需要使用端口 80,使用 root 用户权限启动。然而,ps 命令显示 httpd 流程在 apache 用户帐户下运行。
清单 2. 启动 Apache Web 服务器
# cd /usr/local/apache2/bin
# apachectl start
#ps aux | grep httpd
apache 23094 0.0 0.3 11784 1912 ?S10:41 0:00 /usr/sbin/httpd -k start
apache 23095 0.0 0.3 11784 1912 ?S10:41 0:00 /usr/sbin/httpd -k start
apache 23096 0.0 0.3 11784 1912 ?S10:41 0:00 /usr/sbin/httpd -k start
apache 23097 0.0 0.3 11784 1912 ?S10:41 0:00 /usr/sbin/httpd -k start
apache 23098 0.0 0.3 11784 1912 ?S10:41 0:00 /usr/sbin/httpd -k start
在后台运行应用程序
一些安装的软件可能不像 Apache Web 服务器那样用户友好。您很可能需要在流程启动后以后台方式运行它,除非您正在进行故障排除,或者想要看看应用程序到底怎么了。如果您没有这么做,shell 关闭后应用程序将终止。运行服务器服务时,可不希望每次关闭终端 shell 或者退出时服务都会停止!
如果在后台运行一个应用程序,即使关闭了 shell 窗口,应用程序也会继续运行。您可以通过在执行命令结尾附加一个 (&) 符号来启动应用程序。例如,您可以使用 vi 编辑器打开文件,然后使用 vi /etc/sysconfig/network &命令在后台运行该文件,因为 &可以打开 /etc/sysconfig/network 文件并将其保留在后台。即使在退出后,您也可以使用 nohup 实用工具支持进程继续运行。例如,nohup vi /etc/sysconfig/network &。
清单 3 在 Vim 编辑器中打开一个用来编辑的文件,然后将其放在后台。
清单 3. 在后台运行应用程序
# vi /etc/sysconfig/network &[1] 24940 # jobs [1]+ Stopped vi /etc/sysconfig/network
您可以输入 jobs 命令来查看您在后台上运行的所有应用程序。为在后台上运行的每个任务分配了一个序列号,从 1 开始。 清单 3 中的任务序列号是 1。24940 是进程 ID (PID)。您可以使用 fg 命令和特定的任务号将应用程序移到前台。在本例中,进程没有被用户所使用,因此显示为 Stopped。但是,命令 fg 1 打开终端并回到编辑文件的活动进程。
从桌面运行应用程序
在 Linux 中从桌面运行图形用户界面 (GUI) 应用程序与在 Windows 中没多大区别。通常,您需要了解特定的桌面环境下应用程序在菜单中是如何分组的。Linux 有足够的桌面应用程序,可用于各种任务。有一些应用程序是 Linux 本机固有的,还有另外一些应用程序可能是在一个常用运行时环境中使用 C# 开发的跨平台应用程序,比如,.NET Framework 应用程序。您会发现,使用一个 Wine 这样的虚拟环境,您甚至可以在 Linux 上运行您最喜爱的 Windows 应用程序
首先,关于linux,我们需要知道两个知识点,一个在linux系统下,我们可以将一个文件挂载为一个分区,也就是说如果我有一个磁盘镜像文件,我可以直接挂载为一个linux的分区;这一点与windows的虚拟光驱有点类似,但是在linux下,不仅是光盘镜像文件,所有的镜像文件都可以挂载为一个linux的分区;第二个知识点就是chroot,可能看到这个你就明白了本文讲的方法是如何从安卓设备运行linux系统的,如果还不明白的话,请继续往下看。chroot 就是Change Root,也就是改变程序执行时所参考的根目录位置。有了这两个知识就简单了。方法:首先启动安卓系统,然后将linux的系统镜像文件挂载为安卓系统的一个分区(所以设备必须支持Loop设备),然后通过chroot命令切换程序执行时所参考的根目录即可。这样我们就可以使用系统镜像文件里的 *** 作系统了。
需要用到的几个软件:BusyBox Pro,Complete Linux Installer(内含终端模拟器 VNC安卓客户端和Linux镜像下载链接),适合于Arm的Ubuntu镜像。这几个软件都可以从Google Play里下载到,其中BusyBox Pro是收费应用,网上应该也有免费的下载,可以搜一下。另外Complete Linux Installer也带有BusyBox如果不想下载那个收费的,用这里带的或许也可以,但是可能会报告一个错误。
软件安卓好之后,将Ubuntu镜像放到SD卡里,最好是Class 10的高速卡,不然可能会稍微卡一点,但是不会非常卡,因为大多数的 *** 作还是依赖于安卓系统构建的系统的了,这跟直接将系统镜像写入SD卡并从SD卡启动不同。这个镜像文件需要放到SD卡的一个文件夹下,注意一定不能使中文。然后打开Complete Linux Installer,里面有一个启动 *** 作系统,右上角会有一个菜单编辑,名称任意,路径当然就要选择我们的镜像所致的路径了,保存并返回。此时点击启动即可启动linux系统。此时会启动终端模拟器,提示几个问题,如果是第一次启动会让设置密码,设置好密码之后,再依次输入y,最好设置分辨率,y,即可。如果启动失败,可以多试几次即可。
之后可以打开VNC客户端,连接127.0.0.1:5900输入刚才设置的用户名密码即可连接登陆。如果显示被拒绝连接,可以检查一下端口号是否正确。检查的方法是到终端模拟器执行 netstat -tlnp 看一下vncserver前面对应的端口号码是多少,再到VNC客户端改为相应的端口号即可。
不能想运行的话,安装安卓的开发环境
sdk什么的,在那上边能运行,安卓和linux是不同的 *** 作系统,只是andriod采用了linux的内核,但是2个东西区别还是很大的,cpu架构都不同
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)