项目的安全、稳定、自保等我们都会接触到非ROOT用户部署坏境,配置和执行脚本,开机启动等。往往直接执行脚本可以正常完成脚本内容启动服务或者其他用户,但是在开机启动或者crotab定时任务中却无法正常运行。
解决方案:添加打印日志命令查看日志
1)sudo: sorry, you must have a tty to run sudo
使用不同账户,执行执行脚本时候sudo经常会碰到
sudo: sorry, you must have a tty to run sudo这个情况,其实修改一下sudo的配置就好了
vi /etc/sudoers (最好用visudo命令)
注释掉 Default requiretty 一行
#Default requiretty
意思就是sudo默认需要tty终端。注释掉就可以在后台执行了。
2)部分需要sudo 密码执行
修改脚本:echo $password | sudo -S service mysqld stop
或者:
echo $password | sudo -S sh -c "/home/username/modle/service.sh restart"
-------持续整理遇到的情况