启动阿帕奇脚本

启动阿帕奇脚本

我在本地 Linux (sabayon) 操作系统上安装了 Apache,仅用于编程测试。

我想要的是一个脚本,以便服务器在我需要时立即启动。

这是代码:

#!/bin/bash
# een script dat de apache server start
/etc/init.d/apache2 start

唯一的问题是Apache需要root权限,但我是普通用户。现在我可以使用 来从命令行运行此脚本sudo ./apache_start.sh,但我不希望这样。我只想双击它并启动 Apache 服务器。

那么我该怎么做才能让脚本以 root 用户而不是普通用户身份运行呢?

我不在乎是否有要求输入密码的提示,我只是不想打开控制台、导航到文件等等。

答案1

如果您想做您正在做的事情,则不能使用默认的初始化脚本。此外,如果您希望它在端口 80 上运行,则在没有 root 权限的情况下无法启动它,因为只有 root 可以在端口 80 上启动侦听器。

在我看来,你有两个选择。在高于 1024 的端口上运行,然后从命令行手动执行 apache。或者使用 sudo:

visudo

添加一行包含您的用户名

username ALL=NOPASSWD: /etc/init.d/apache2 start, /etc/init.d/apache2 stop

你的桌面快捷方式告诉它执行

sudo /etc/init.d/apache2 start

答案2

你可以使用gksudo直观的方式获取root权限,这很好。

apache-start.sh

#!/bin/bash

if [ "$EUID" = "0" ]; then
    # we're root, so just run it
    service apache2 start
    exit 0
fi

# otherwise, try running it with a visual prompt for superuser
gksudo service apache2 start

相关内容