centos自定义服务并加入开机启动

/etc/init.d/ 加入 workerman 文件(自定义服务,其实就是一个bash脚本),注意不要 .sh 后缀; 内部的 start() 这个函数会开机启动,配合 chkconfig workerman on 使用,注意引用绝对路径命令。

###一、脚本内容

#!/bin/bash

#chkconfig: 2345 70 30
#description: workerman command   #关于脚本的简短描述
#processname: workerman

start() {
        cd /data/wwwroot/web/workman/http
        /usr/local/php/bin/php http.php start -d
}

stop(){
        cd /data/wwwroot/web/workman/http
        /usr/local/php/bin/php http.php stop
}

case "$1" in
        start)
                cd /data/wwwroot/web/workman/http
                /usr/local/php/bin/php http.php start -d
                echo "Starting WorkerMan..."
                ;;
        stop)
                cd /data/wwwroot/web/workman/http
                /usr/local/php/bin/php http.php stop
                echo "Shutting WorkerMan..."
                ;;
        restart)
                cd /data/wwwroot/web/workman/http
                /usr/local/php/bin/php http.php restart
                echo "Restart WorkerMan..."
                ;;
        reload)
                cd /data/wwwroot/web/workman/http
                /usr/local/php/bin/php http.php reload
                echo "Reload WorkerMan..."
                ;;
        *)
                echo "Usage: #0 {start|stop|restart}"
                ;;
esac

###二、然后加入系统服务并设置开机启动

chkconfig --add workerman 
chkconfig workerman on

###三、start和stop函数解释 开机会自动执行start()函数,关机执行stop函数

###四、使用方法 平时使用 service workerman start | stop | restart | reload

###五、其他自启动方法

  1. /etc/rc.local,在这个文件中最后加入命令即可
  2. vi ~/.bashrc 或 vi ~/.bash_profile
  3. 即第一种方法

转载于:https://my.oschina.net/kmwzjs/blog/728092

<think>好的,我需要帮助用户了解如何以普通用户身份启动MySQL服务设置开机启动。首先,我得回忆一下MySQL在不同系统下的服务管理方式,通常是使用systemd的Linux发行版,比如Ubuntu或CentOS。用户可能使用的是这类系统,所以应该重点讲解systemd的相关命令。 接下来,用户提到“普通用户”,这里可能存在权限问题。通常启动系统服务需要root权限,但用户可能想避免使用sudo或者root账户。这时候需要考虑是否有方法让普通用户管理MySQL服务,或者是否需要配置sudo权限。需要明确说明是否需要修改sudoers文件,给予普通用户相应的权限,比如允许执行systemctl命令。 然后,开机启动部分,同样涉及systemctl enable命令,这也通常需要root权限。如果用户希望普通用户能够设置开机启动,可能需要配置sudo权限。或者,是否有其他方法,比如编辑rc.local文件,但这种方法在现代系统中可能不太推荐。 还需要注意MySQL的安装方式,如果是通过包管理器安装的,服务名通常是mysql或mysqld,需要确认正确的服务名称。此外,安全方面,以普通用户运行MySQL服务可能涉及修改配置文件中的用户设置,但默认情况下MySQL可能使用mysql用户运行,这里可能需要澄清用户的实际需求,是否是希望以另一个普通用户身份运行,还是只是启动服务。 另外,如果用户没有root权限,可能需要寻找替代方案,比如使用用户空间的服务管理工具,或者编译安装MySQL配置为用户级服务,但这可能比较复杂。需要评估用户的技术水平,提供适合的解决方案。 最后,步骤需要具体,包括命令示例和可能的配置文件修改。同时,要提醒用户注意安全,比如避免使用弱密码,确保权限正确等。可能还需要验证步骤,比如检查服务状态,确认是否成功启动和启用自启动。</think>以下是普通用户管理MySQL服务的详细指南,包含权限配置和安全注意事项: ### 一、准备工作(需root权限) ```bash # 1. 将用户加入mysql系统组 sudo usermod -aG mysql 你的用户名 # 2. 配置sudo权限(编辑sudoers文件) sudo visudo # 在文件末尾添加: 你的用户名 ALL=(ALL) NOPASSWD: /usr/sbin/service mysql * ``` ### 二、服务管理命令(普通用户执行) #### 1. 启动服务 ```bash sudo service mysql start # 或使用systemctl(适用于systemd系统) sudo systemctl start mysql ``` #### 2. 停止服务 ```bash sudo systemctl stop mysql ``` #### 3. 查看状态 ```bash systemctl status mysql --no-pager ``` ### 三、设置开机启动 ```bash sudo systemctl enable mysql ``` ### 四、验证操作 ```bash # 查看服务是否激活 systemctl is-enabled mysql # 检查启动日志 sudo journalctl -u mysql -n 50 --no-pager ``` ### 五、配置文件权限设置 ```bash # 1. 修改配置文件所有者 sudo chown 你的用户名:mysql /etc/mysql/my.cnf # 2. 设置安全权限 sudo chmod 640 /etc/mysql/my.cnf ``` ### 六、安全注意事项 1. **日志文件权限**:确保$log_error路径有读取权限 ```bash sudo setfacl -m u:你的用户名:r /var/log/mysql/error.log ``` 2. **数据目录保护**:保持`/var/lib/mysql`目录权限为mysql用户专属 3. **密码策略**:修改配置强化安全 ```ini [mysqld] validate_password.policy = STRONG ``` ### 七、排错指南 | 常见错误 | 解决方案 | |--------------------------|----------------------------| | "Access denied" | 检查sudoers配置是否正确 | | "Failed to start service"| 查看/var/log/mysql/error.log| | 端口冲突(3306) | 检查其他MySQL实例运行状态 | ### 八、高级方案(无root权限) 适用于无法获取sudo权限的情况: 1. 使用源码编译安装到用户目录 ```bash cmake . -DCMAKE_INSTALL_PREFIX=$HOME/mysql make && make install ``` 2. 配置自定义启动脚本 ```bash # 创建启动脚本 cat > ~/mysql.start.sh <<EOF #!/bin/bash $HOME/mysql/bin/mysqld_safe --datadir=$HOME/mysql/data & EOF ``` 3. 添加至用户级定时任务 ```bash (crontab -l 2>/dev/null; echo "@reboot ~/mysql.start.sh") | crontab - ``` > **注意**:生产环境建议使用官方推荐的标准安装方式,非root方案仅适用于开发测试环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值