포그라운드 프로세스에서 루트 쉘을 사용하여 bash 스크립트를 종료하는 방법

포그라운드 프로세스에서 루트 쉘을 사용하여 bash 스크립트를 종료하는 방법

메모리를 정리하는 정리 스크립트 cleanup.sh가 있습니다.

스크립트:

# root script starts here
echo ".........running clean up script ..........."

/usr/local/packages/aime/ias/run_as_root "su -"
free -t
sync; echo 1 > sudo /proc/sys/vm/drop_caches
free -t
sync; echo 2 > sudo  /proc/sys/vm/drop_caches
free -t
sync; echo 3 > sudo /proc/sys/vm/drop_caches
free -t
swapoff -a && swapon -a
echo "#####swapoff and swap on command ############"
free -g
exit
# root script ends here
free -g

스크립트 끝

스크립트는 루트를 사용하여 이러한 작업을 수행하지만 루트 프롬프트를 종료할 수 없습니다.

0번 출구, 1번 출구, {exit} 모두 시도했습니다.

프로세스가 전면으로 나오고 있습니다. 이 스크립트를 시작하는 쉘로 어떻게 이동합니까?

스크립트를 실행하고 루트로 스크립트를 실행하십시오.

[sgongali@slc06wvd cronjob]$ ./cleanup.sh
.........running clean up script ...........
[root@slc06wvd ~]# 

수동으로 종료하면 다음 결과가 나타납니다. swapoff -a && swapon -a는 스크립트의 일부로 작동하지 않지만 수동으로 작동합니다.

[root@slc06wvd ~]# exit
logout
             total       used       free     shared    buffers     cached
Mem:      15037256   12776036    2261220     793448     382132    3357904
-/+ buffers/cache:    9036000    6001256
Swap:     15826924          0   15826924
Total:    30864180   12776036   18088144
             total       used       free     shared    buffers     cached
Mem:      15037256   12776036    2261220     793448     382140    3357896
-/+ buffers/cache:    9036000    6001256
Swap:     15826924          0   15826924
Total:    30864180   12776036   18088144
             total       used       free     shared    buffers     cached
Mem:      15037256   12776036    2261220     793448     382160    3357876
-/+ buffers/cache:    9036000    6001256
Swap:     15826924          0   15826924
Total:    30864180   12776036   18088144
             total       used       free     shared    buffers     cached
Mem:      15037256   12776104    2261152     793448     382164    3357872
-/+ buffers/cache:    9036068    6001188
Swap:     15826924          0   15826924
Total:    30864180   12776104   18088076
./cleanup.sh: line 14: swapoff: command not found
#####swapoff and swap on command ############
             total       used       free     shared    buffers     cached
Mem:            14         12          2          0          0          3
-/+ buffers/cache:          8          5
Swap:           15          0         15
[sgongali@slc06wvd cronjob]$ 

답변1

which swapoff및 를 실행 which swapon하고 스크립트의 전체 경로를 사용합니다. 또는 PATH스크립트 시작 부분에서 env를 업데이트하고 해당 바이너리가 포함된 디렉터리를 추가하세요.

관련 정보