1、root下,vi /etc/sudoers :

[root@guanz etc]# vi /etc/sudoers
[root@guanz etc]# # 添加如下内容:
guanz    ALL=(ALL)       ALL示例:
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
guanz    ALL=(ALL)       ALL
## Allows members of the 'sys' group to run networking, software,

2、切换至普通用户guanz,并测试命令:

2.1 方式一:【echo ‘passwd’ | sudo -S java -jar ****】

[root@guanz etc]# su guanz
[guanz@guanz etc]$ # 进入jar包所在目录下:
[guanz@guanz dell]$ cd app/
[guanz@guanz app]$ ll
total 599948
-rw-rw-r--. 1 guanz guanz     59162 Jul  1 11:09 log-210701-01.txt
-rwxrwxr-x. 1 guanz guanz 307142072 Jul  1 14:36 test-1.0.jar# 查看当前在运行的窗口程序
[guanz@guanz app]$ screen -ls
No Sockets found in /var/run/screen/S-guanz.# 创建窗口,并进入,直接执行java -jar启动,会提示你输入密码:
[guanz@guanz app]$ screen -S jar
[guanz@guanz app]$ sudo java -jar test-1.0.jar > log-01.txt
[sudo] password for guanz: # 通过【echo 'passwd' | sudo -S java -jar ****】再次执行,会直接启动,无需再输入密码。
[guanz@guanz app]$ echo '123456' | sudo -S java -jar test-1.0.jar > log-01.txt
[sudo] password for guanz: # 查看当前在运行的窗口
[guanz@guanz app]$ screen -ls
There is a screen on:17362.jar  (Detached)
1 Socket in /var/run/screen/S-guanz.
[guanz@guanz app]$ # 查看日志文件,发现文件已启动:
2021-07-01 15:01:02.531  INFO 17548 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8890 (http) with context path ''
2021-07-01 15:01:02.534  INFO 17548 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 29.065 seconds (JVM running for 30.46)至此,此命令有效。

2.2 方式二:【EOF】文本块方式

sudo -S java -jar test-1.0.jar > log-01.txt << EOF
> passwd
> EOF
# 通过【EOF】文本块的方式,再次执行,会直接启动,无需再输入密码。
[guanz@guanz app]$ sudo -S java -jar test-1.0.jar > log-01.txt << EOF
> 123456
> EOF# 查看日志文件,发现文件已启动:
2021-07-01 15:04:39.160  INFO 17848 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8890 (http) with context path ''
2021-07-01 15:04:39.162  INFO 17848 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 29.111 seconds (JVM running for 30.618)至此,此命令有效。

3、自启动.sh脚本文件:

#!/bin/bash
#cd ~/app
#sudo java -jar test-1.0.jar > log.txtscreen_name=$"jar"
screen -dmS $screen_name
cmd1=$"cd /home/app";
screen -x -S $screen_name -p 0 -X stuff "$cmd1"
screen -x -S $screen_name -p 0 -X stuff $'\n'
cmd3=$"echo '123456' | sudo -S java -jar test-1.0.jar > log-01.txt";
screen -x -S $screen_name -p 0 -X stuff "$cmd3"
screen -x -S $screen_name -p 0 -X stuff $'\n'
cmd4=$"screen -d jar";
screen -x -S $screen_name -p 0 -X stuff "$cmd4"
screen -x -S $screen_name -p 0 -X stuff $'\n'

再见。

Linux 自启动.sh脚本使用sudo自动输入密码相关推荐

  1. Shell脚本交互:自动输入密码

    Shell脚本交互:自动输入密码 平时在控制台输入指令如:sudo.ssh.ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密 ...

  2. linux给脚本文件赋权限,linux编写.sh脚本并赋权限问题

    linux编写.sh脚本并赋权限问题 今日打包编译项目时,发现缺少一个git pull更新项目的脚本,所以在linux编写了一个gitpull.sh脚本,能够实现更新项目的需求. 1.首先vi  gi ...

  3. 脚本链接 ssh 自动输入密码

    上周工作中,遇见一些重复性的工作,为了方便,于是写起了脚本. 在这个脚本中,需要通过 s s h ssh ssh 链接到远程服务器,然后执行特定的操作,但是链接服务器的时候, s s h ssh ss ...

  4. linux du -sh 脚本,Linux之shell脚本(2)

    Linux之shell脚本(2) 一.printf命令: printf是一个把从标准输入的字符按照你所要求的格式输出到标准输出即屏幕的命令.在很多时候,我们可能需要将自己的数据给他格式化输出的. 1. ...

  5. linux执行sh脚本报错的解决办法

    在我们的最小化安装的linux下,执行sh脚本文件不生效,报错如下: 解决方法如下: 安装成功后再次执行: 执行成功!!!

  6. linux 执行sh脚本传参数

    linux脚本根据动态参数判断 解决方法: sh  /data/test.sh  "123"  上面执行test.sh脚本时就传递了一个参数123 其中$1指的是执行sh脚本时所传 ...

  7. 【linux】ssh 远程执行命令自动输入密码方式

    ssh 远程执行命令自动输入密码方式 场景: 由于多台机必须要登陆执行命令,需要使用密钥一台台登录,所以每次登陆机器的时候都需要手动输入域账号密码.密码太长且复杂,手动输入容易输错,故使用脚本来做这个 ...

  8. Linux系统sh脚本编写

    声明: 如果您有更好的技术与作者分享,或者商业合作: 请访问作者个人网站 http://www.esqabc.com/view/message.html 留言给作者. 如果该案例触犯您的专利,请在这里 ...

  9. 安卓linux定时执行脚本,Android开机自动执行shell脚本

    在应用程序启动之前,往往需要在Android启动过程中去对系统做一些设置,如修改某些文件夹的属主和文件的权限,本文实现在init.rc中调用shell脚本,而所有对系统资源的修改和配置都在此shell ...

最新文章

  1. 用户报告性能缓慢的解决流程
  2. 20211028 调节和跟踪
  3. ASP.NET 开发实践--性能与缓存
  4. 详解Eureka服务注册与发现和Ribbon负载均衡【纯理论实战】
  5. AlphaGo之父亲授深度强化学习十大法则
  6. 很强大的FFMPEG API Documentation
  7. 使用视觉信息,为什么能把移动机器人的空间位置信息记录下来
  8. 【NOIP模拟】图论题Graph
  9. 上游供应链厂商确认高通已获准向华为出售4G芯片
  10. 吴恩达深度学习的实用层面编程作业:正则化Regularization
  11. mysql多实例my.cnf_mysql多实例,my.cnf 4G conf配置安装配置
  12. OllyDBG 入门系列(一)-认识OllyDBG
  13. 固高运动控制卡的使用 2 关于IO的访问以及调用(C#版)
  14. Java实现在线视频通话
  15. 28-地理空间数据云下载
  16. 创业兵法:市场需求分析
  17. 有道智选-网易效果推广
  18. 高效率的免费发布信息平台,助力企业高质量采购
  19. 达梦数据库全文索引使用示例
  20. 【大数据处理技术】「#2」Hive数据分析

热门文章

  1. Left 4 Dead 2(求生之路2) 游戏打不开 游戏闪退 的一种可能性以及解决方法
  2. 优秀个人博客网站收集
  3. 【线程、锁】Condition使用以及Condition原理分析
  4. 利用JavaScript实现下拉菜单
  5. HTC为什么干不过三星
  6. 经历苦难【管理学之二】
  7. 【译+评】VisionMobile:Nokia+Microsoft:两个残破商务模式的故事
  8. Android不信任证书导致无法抓包的解决办法
  9. CMM与CMMI的关系是什么?
  10. 4月17日鸿蒙开发者大会,鸿蒙真的要来了?华为开发者大会