Linux下如何实现不用加路径调用启动脚本
配置Systemctl启动
Linux下便于启停服务,可以配置systemcl,配置如下描述
说明
只有root用户可配置,文件路径为 /etc/systemd/system/XXX.service,本文将用nginx.service举例说明
1、创建文件
首先创建一个nginx.service文件,用于配置nginx的systemctl服务。可以使用任何文本编辑器,
vi /etc/systemd/system/nginx.service
2、在Nginx.service中增加以下内容,并保存关闭文件即可
[Unit]
Description=nginx
After=network.target
[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PIDFile=/usr/local/nginx/logs/nginx.pid
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3、重载使systemctl生效
sudo systemctl daemon-reload
4、试验systemctl启动、停止等操作
# 启动
systemctl start nginx
# 停止
systemctl stop nginx
# 重启
systemctl restart nginx
#状态查看
systemctl status nginx
5、如果没有root,配置环境变量
有公司为了安全不给开放root权限,只给appuser,那怎么做到方便启动nginx,不用每次进到sbin下执行命令呢,那就配环境变量即可
#1 修改用 户级环境变理
vi ~/.bash_profile
#2 追加上nginx配置并保存退出
# Source /root/.bashrc if user has one
[ -f ~/.bashrc ] && . ~/.bashrc
NGINX_HOME=/usr/local/nginx
PATH=$PATH:$NGINX_HOME/sbin
export PATH
~
# 3使环境变量生效
source ~/.bash_profile
#可以尝试任意地方启nginx了,直接nginx即可,无需路径或加./
后记
配环境变量时,写错了,生效后系统 自带的所有命令都无法使用了,包括vi、ps、cd命令,意味着无法找到环境变量文件进行修改了,慌的一批,不过还好聪明点,在当前窗口重新export了一下环境变量,然后可以用命令,进行~/.bash_profile修改,导系统环境变量让当前窗口生效的命令如下:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin